/************************************************************************
功能 :把Cstring转换为Char类型
参数IN :Cstring str需要转换的str
参数OUT :char ch 输出的结果
************************************************************************/
void CznhygjDlg::CString2Char(CString str, char ch[])
{
int i;
char *tmpch;
int wLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL);//得到Char的长度
tmpch = new char[wLen + 1]; //分配变量的地址大小
WideCharToMultiByte(CP_ACP, 0, str, -1, tmpch, wLen, NULL, NULL); //将CString转换成char*
for(i = 0; tmpch[i] != '\0'; i++) ch[i] = tmpch[i];
ch[i] = '\0';
delete tmpch;
}
这个我也遇到了,没查到什么结果。我就直接for循环吧不是空格的字符重新赋到新的字符数组中。但源字符串如果有汉字就不行了。
UNICODE下是w_char,用char显然不对