字符集Unicode模式时,CString转char*使用
CString str;
DWORD
dwNum = WideCharToMultiByte(CP_OEMCP,NULL,str,-1,NULL,NULL,0,NULL);
char
*c =
new
char
[dwNum];
WideCharToMultiByte(CP_OEMCP,NULL,str,-1,c,dwNum,0,NULL);
char * str = "123456789abd " ; // 预转换,得到所需空间的大小 int wcsLen = ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), NULL, 0 ); // 分配空间要给'\0'留个空间,MultiByteToWideChar不会给'\0'空间 wchar_t * wszString = new wchar_t[wcsLen + 1 ]; // 转换 ::MultiByteToWideChar(CP_ACP, NULL, inputbuffer, strlen(inputbuffer), wszString, wcsLen); // 最后加上'\0' wszString[wcsLen] = ' \0 ' ; // 附加到CString对象上 CString content; content.Append(wszString);