CString 在_UNICODE宏定义下和普通ASCII编码下的不同

来源:互联网 发布:外汇交易软件骗局 编辑:程序博客网 时间:2024/05/16 16:02

CString在普通ASCII编码情况下,系统默认是跟char*差不多的方式来存储(个人觉得)。

例如,声明和赋值一个CString可以这样:

char* charStr = "Kenko";

CString cstr =  charStr;

因为在ASCII编码下,CString会把后边这个指针的内存位置,作为输入流,逐个字符的读入到CString中。

 

但在_UNICODE宏定义下,默认都变为宽字节。那么CString存储方式将以宽字节的形式。

所以此时要CString变为wchar_t*只要如下:

CString变wchar*:
wchar_t unicodeStr[255];
wcscpy(unicodeStr, cstr);

这时要赋值给CString,就注意一定要以宽字节的形式赋值(当然直接用char*赋值给CString,系统会自动转化)。


memcpy( PBYTE  lpEmailAccount,CString m_newStr.getbuffer(),(m_newStr.getlengh()+1)*sizeof(WCHAR));