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