国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++中char*轉換為LPCWSTR的解決方案

2020-05-23 13:54:58
字體:
來源:轉載
供稿:網友

前言

大家在學習或者使用Windows編程中,經常會碰到字符串之間的轉換,char*轉LPCWSTR也是其中一個比較常見的轉換。下面就列出幾種比較常用的轉換方法。大家可以根據自己的需求選擇相對應的方法,下面來一起學習學習吧。

1、通過MultiByteToWideChar函數轉換

MultiByteToWideChar函數是將多字節轉換為寬字節的一個API函數,它的原型如下:

int MultiByteToWideChar(  UINT CodePage,   // code page  DWORD dwFlags,   // character-type options  LPCSTR lpMultiByteStr, // string to map  int cbMultiByte,  // number of bytes in string  LPWSTR lpWideCharStr, // wide-character buffer  int cchWideChar  // size of buffer ); 

LPCWSTR實際上也是CONST WCHAR *類型

  char* szStr = "測試字符串"; WCHAR wszClassName[256]; memset(wszClassName,0,sizeof(wszClassName)); MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,  sizeof(wszClassName)/sizeof(wszClassName[0])); 

2、通過T2W轉換宏

  char* szStr = "測試字符串";  CString str = CString(szStr); USES_CONVERSION; LPCWSTR wszClassName = new WCHAR[str.GetLength()+1]; wcscpy((LPTSTR)wszClassName,T2W((LPTSTR)str.GetBuffer(NULL))); str.ReleaseBuffer(); 

3、通過A2CW轉換

char* szStr = "測試字符串";  CString str = CString(szStr); USES_CONVERSION; LPCWSTR wszClassName = A2CW(W2A(str)); str.ReleaseBuffer(); 

上述方法都是UniCode環境下測試的。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兴安盟| 探索| 昌江| 滦平县| 无极县| 平遥县| 巴里| 宜兰县| 酉阳| 乌兰县| 武胜县| 山东| 聂荣县| 福清市| 剑阁县| 鄄城县| 陈巴尔虎旗| 阳城县| 农安县| 东乌珠穆沁旗| 鄂温| 临武县| 化州市| 扎赉特旗| 辉南县| 二手房| 上林县| 保亭| 宁夏| 柏乡县| 昌邑市| 贵定县| 乐东| 通城县| 资溪县| 巴彦淖尔市| 鄂尔多斯市| 墨江| 砀山县| 中超| 潼关县|