CString转char*,复制

  • Post author:
  • Post category:其他



首先要先确定项目的字符集是多字节字符集还是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()



版权声明:本文为ye_i_qi原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。