本文转自:CString与char *互转总结(http://blog.csdn.net/flydream0/article/details/8543525)
按照网上的方法有时转化不成功,可能是编码模式不同:
1.检查IDE(主要是指VC)的Charecter Set属性,默认情况下工程是采用了Use Unicode Charecter Set选项;
2.宽字节字符模式:
CString str1 ="123";
char *t1 =str1.GetBuffer(str1.GetLength());
str1.ReleaseBuffer();
3.Unicode编码模式:
CString str1 =_T("123");
int len =WideCharToMultiByte(CP_ACP,0,str1,-1,NULL,0,NULL,NULL);
char *ptxtTemp =new char[len +1];
WideCharToMultiByte(CP_ACP,0,str1,-1,ptxtTemp,len,NULL,NULL );
//...
delete[] ptxtTemp;