WideCharToMultiByte使用实例:宽字节转成多字节字符串
#include <windows.h>
#include <stdio.h>
void main()
{
wchar_t wText[20] = {L"宽字符转换实例!OK!"};
//DWORD dwNum = WideCharToMultiByte(CP_OEMCP,NULL,wText,-1,NULL,0,NULL,FALSE);
DWORD dwNum = WideCharToMultiByte(CP_ACP,NULL,wText,-1,NULL,0,NULL,FALSE);//把第五个参数设成NULL的到宽字符串的长度包括结尾符
char *psText;
psText = new char[dwNum];
if(!psText)
{
delete []psText;
}
//WideCharToMultiByte (CP_OEMCP,NULL,wText,-1,psText,dwNum,NULL,FALSE);
WideCharToMultiByte (CP_ACP,NULL,wText,-1,psText,dwNum,NULL,FALSE);
printf("%s\n",psText);
printf(psText);
delete []psText;
}
MultiByteToWideChar使用实例:多字节字符串转成宽字节字符串
#include "windows.h"
#include <stdio.h>
#include <locale.h>
void main()
{
setlocale(LC_ALL,"");//使中文可以打印显示
char sText[20] = {"多字节字符串!OK!"};
DWORD dwNum = MultiByteToWideChar (CP_ACP, 0, sText, -1, NULL, 0););//把第五个参数设成NULL的到宽字符串的长度包括结尾符
wchar_t *pwText;
pwText = new wchar_t[dwNum];
if(!pwText)
{
delete []pwText;
}
int nLen = MultiByteToWideChar (CP_ACP, 0, sText, -1, pwText, dwNum+10);
if (nLen >= 0)
{
pwText[nLen] = 0;
}
wprintf(L"%s\n",pwText);
wprintf(pwText);
printf("\n");
}