CString转const char *

来源:互联网 发布:万能套打软件 编辑:程序博客网 时间:2024/05/16 18:02

MFC中CString转换成const char *的问题,在网上找到最多两种方法是用GetBuffer函数和强制类型转换的方法,虽说编译、运行都没有问题,但是得到的值不对,只能得到首字符,后边的字符会丢失。而用WideCharToMultiByte则可以解决这个问题,得到完整的字符串。

例:

CString str = _T("中华人民共和国");
wchar_t * pWchar = str.GetBuffer(len);
int size = WideCharToMultiByte(CP_ACP,0,pWchar,-1,NULL,0,NULL,NULL); 
const char * pFilePath = new char[size + 1];
if(!WideCharToMultiByte(CP_ACP,0,pWchar,-1,(LPSTR)pFilePath,size,NULL,NULL))
{
return;
}

最后别忘了释放内存。

0 0