//wchar_t和char互相转换的两种方法
//windows下两种都可用。
//linux下只有方法2可用
//wcstombs和mbstowcs是stdlib中的库函数,因此是跨平台的。
void main(int argc, char* argv[])
{
//方法1. 使用stdlib中的库函数,需包含stdlib.h
//wcstombs - 将宽字符转换成多字符 WCHAR -> CHAR
//mbstowcs - 把多字符把转换成宽字符 CHAR -> WCHAR
//方法2. 使用sprintf或者swprintf函数。
//wchar_t转char 方法1
wchar_t *p = L"hello world.";
char descBuf[128] = {0};
//sprintf(descBuf,"%ws",strDesc.c_str());
sprintf(descBuf,"%S",p);
printf("str:%s\n",descBuf);
//wchar_t转char 方法2
char buffer[128] = {0};
wcstombs(buffer,p,128);
//char转wchar_t 方法1
char *pChar = "I am Chinese\n";
wchar_t wchar[128] = {0};
swprintf(wchar,128,L"%S",pChar);
//char转wchar_t 方法2
char *szSour = "Have a Try";
wchar_t Temp[128] = {0};
mbstowcs(Temp,szSour,strlen(szSour));
int n = strlen(szSour);
int k = wcslen(Temp);
printf("%S\n",Temp);
}