char 轉LPCWSTR解決方案

2021-09-29 20:33:39 字數 1273 閱讀 5877

在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編碼方...