天天看點

VS中常見的寬字元和窄字元轉換

一、char* 轉 wchar*

wchar_t* C2W(const char* str) {      int len = MultiByteToWideChar(CP_OEMCP, 0, str, -1, NULL, 0);      wchar_t* wstr = new wchar_t[len + 1];      MultiByteToWideChar(CP_OEMCP, 0, str, -1, wstr, len);      return wstr; }

二、wchar* 轉 char*

char* W2C(const wchar_t *pwstr)

{

int nlength = wcslen(pwstr);

//擷取轉換後的長度  

int nbytes = WideCharToMultiByte(0, 0, pwstr, nlength, NULL, 0, NULL, NULL);

char* pcstr = new char[nbytes + 1];

// 通過以上得到的結果,轉換unicode 字元為ascii 字元  

WideCharToMultiByte(0, 0, pwstr, nlength, pcstr, nbytes, NULL, NULL);

pcstr[nbytes] = '\0';

return pcstr;

}

繼續閱讀