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));