VC++/MFC中WCHAR *转化为char *的方法,即宽字符和普通字符互相转化【已解决】

1.wchar *转 char *

char *wtoc(wchar_t *wText)
{
	DWORD dwNum = WideCharToMultiByte(CP_ACP, NULL, wText, -1,NULL, 0, NULL, FALSE);//把第五个参数设成NULL的到宽字符串的长度包括结尾符
	char *psText = NULL;
	psText = new char[dwNum];
	if(!psText)
	{
		delete []psText;
		psText = NULL;
	}
	WideCharToMultiByte (CP_ACP, NULL, wText, -1,psText, dwNum, NULL, FALSE);
	return psText;
}

2. char *转wchar *

wchar_t *ctow(char *sText)
{
	DWORD dwNum = MultiByteToWideChar (CP_ACP,  0, sText, -1, NULL, 0);//把第五个参数设成NULL的到宽字符串的长度包括结尾符
 
	wchar_t *pwText = NULL;
	pwText = new wchar_t[dwNum];
	if(!pwText)
	{
		delete []pwText;
		pwText = NULL;
	}
	unsigned nLen = MultiByteToWideChar (CP_ACP, 0, sText, -1, pwText, dwNum+10);
	if (nLen >= 0)
	{pwText[nLen] = 0;}
	return pwText;
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。