首先要先确定项目的字符集是多字节字符集还是Unicode字符集
字符集设置如下:
1.对于多字节,CString转char*如下:
CString cs = “abcdef;
char c_arr[30];
strcpy(c_arr,(LPCTSTR)cs);
2.对于Unicode字符集,需要多做一步,将Unicode转多字节字符,使用函数:
int WideCharToMultiByte(
UINT CodePage,
// code page,一般设为CP_ACP
DWORD dwFlags,
// performance and mapping flags,一般设为0
LPCWSTR lpWideCharStr,
// wide-character string,指定一个宽字符串
int cchWideChar,
// number of chars in string,宽字符串的长度(字符数)
LPSTR lpMultiByteStr,
// buffer for new string,存放转换后的多字节字符串缓存区
int cbMultByte,
// size of buffer,多字符串缓存区的最大长度(字节数)
LPBOOL lpUsedDefaultChar// set when default char used,如果有字符转换失败,则为TRUE,一般设为NULL
);
CString cs = “abcdef;
char c_arr[30] = {‘0’};
WideCharToMultiByte(CP_ACP, 0, cs, cs.GetLength, c_arr, 30, TRUE);
WideCharToMultiByte()