CString转为char *,代码如下(中英文都可以转换,无乱码):
CString funcName=_T("hello MessageBoxW O(∩_∩)O哈哈~"); //确定CString转换为ASCII后,所需的字节数 int nLen=WideCharToMultiByte(CP_ACP,0,funcName,-1,NULL,0,NULL,0); char *szApi=(char*)calloc(nLen,sizeof(char)); // 分配空间 memset(szApi,0,nLen*sizeof(char)); //初始化空间 //CString转为char * WideCharToMultiByte(CP_ACP,0,funcName,-1,szApi,nLen,NULL,0); //弹出来看看转换结果 CString rst(szApi); AfxMessageBox(rst);
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
效果截图:
-------------------------------------------------------------------------------------------------------------------------------------------------------
整理了一下以上代码,方便以后查看和Copy:
//CString转为char * //1.获取CString转为ASCII,所需的字节数 //2.根据得到的字节数分配内存空间和清零该空间 //3.开始将CString转为char * int nLen=WideCharToMultiByte(CP_ACP,0,funcName,-1,NULL,0,NULL,0); char *szApi=(char*)calloc(nLen,sizeof(char)); memset(szApi,0,nLen*sizeof(char)); WideCharToMultiByte(CP_ACP,0,funcName,-1,szApi,nLen,NULL,0);
------------------------------------------------------------------------------------------------------------------------------------------------------
您的十分满意是我追求的宗旨。
您的一点建议是我后续的动力。