CString转为char *

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);

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

效果截图:


CString转为char *_第1张图片

-------------------------------------------------------------------------------------------------------------------------------------------------------

整理了一下以上代码,方便以后查看和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);

------------------------------------------------------------------------------------------------------------------------------------------------------

您的十分满意是我追求的宗旨。

您的一点建议是我后续的动力。









你可能感兴趣的:(unicode,转换,数组,char,ASCII)