UCHAR * 到 CString 的转换和 CString 到 UCHAR * 到 vc++ 中的转换

Posted

技术标签:

【中文标题】UCHAR * 到 CString 的转换和 CString 到 UCHAR * 到 vc++ 中的转换【英文标题】:UCHAR * to CString conversion and CString to UCHAR * to conversion in vc++ 【发布时间】:2015-05-23 02:12:22 【问题描述】:

我是 vc++ 的新手。如何将UCHAR *值转换为CString和CString转换为UCHAR *

CString str;
UCHAR * pBuffer;
......Memmory allocation..
str.format(_T("%d"),pBuffer);

但它不起作用。第二个数据可能是字符串或整数,所以如何以正确的方式进行转换。

【问题讨论】:

见***.com/questions/20350411/… 在上面的链接答案被接受。但提问者对答案不满意。 UCHAR* 究竟代表什么? 【参考方案1】:

第二个数据可能是字符串或整数,所以如何以正确的方式进行转换。

在格式化UCHAR* 数据时,您必须将其解释为正确的数据类型,例如:

// if pBuffer contains 'int' data...
str.format(_T("%d"), *(int*)pBuffer);

// if pBuffer contains 8bit 'char' data w/ a null terminator...
str.format(_T("%hs"), (char*)pBuffer);

Or:

// if pBuffer contains 8bit 'char' data w/o a null terminator...
str.format(_T("%*hs"), iBufferLen, (char*)pBuffer);

等等……

【讨论】:

以上是关于UCHAR * 到 CString 的转换和 CString 到 UCHAR * 到 vc++ 中的转换的主要内容,如果未能解决你的问题,请参考以下文章

SSE中的浮点到uchar转换问题

如何使用霓虹内在函数准确地将 uchar 转换为 float32 ,反之亦然

将表示 UCHAR 数组的 json 字符串响应转换为字节数组

OpenCV uchar和Mat之间的相互转换

grayim.at<uchar>(i,j)=128;尖括号是啥?C++函数名允许带尖括号?

如何将 UCHAR 虚拟键代码转换为 std::string [重复]