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

UCHAR * to CString conversion and CString to UCHAR * to conversion in vc++

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

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

但是它不起作用。第二个数据可能是 string 或 int 那么如何以正确的方式进行转换。

Second data may be string or int so how to do conversion in proper way.

您必须在格式化时将 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);

等等...