在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環境下測試的。
char 轉LPCWSTR解決方案
在windows程式設計中,經常會碰到字串之間的轉換,char 轉lpcwstr也是其中乙個比較常見的轉換。下面就列出幾種比較常用的轉換方法。1 通過multibytetowidechar函式轉換 multibytetowidechar函式是將多位元組轉換為寬位元組的乙個api函式,它的原型如下 i...
C 中char 轉換為LPCWSTR的解決方案
最近在學習c 遇到了乙個char轉換為lpcwstr的問題,通過查詢資料終於解決了,所以下面這篇文章主要介紹了c 中char轉lpcwstr的解決方案,文中通過詳細的示例 介紹的很詳細,有需要的朋友可以參考借鑑,下面來一起看看吧。前言 大家在學習或者使用windows程式設計中,經常會碰到字串之間的...
MFC中關於char 轉換成LPCWSTR的問題
在寫win32應用程式時候,你可能遭遇到如下錯誤 error c2664 loadimagew cannot convert parameter 2 from char 20 to lpcwstr char 20 轉換為 lpcwstr 一 問題的原因 vs2010預設採用寬字元unicode編碼方...