1. 程式人生 > >Windows編程中char*轉LPCWSTR解決的方法總結

Windows編程中char*轉LPCWSTR解決的方法總結

cat get byte space mod ide zcl 常常 data-

Windows編程中常常涉及到的一個問題是字符串之間的轉換,開發過程總是遇到編譯器提示無法格式轉換的問題。於是自己總結了幾種解決的方法。

1、通過T2W轉換宏

char* szStr = "balabala";

CString str = CString(szStr);

USES_CONVERSION;
LPCWSTR wszClassName = new WCHAR[str.GetLength()+1];
wcscpy((LPTSTR)wszClassName,T2W((LPTSTR)str.GetBuffer(NULL)));
str.ReleaseBuffer();

2、通過A2CW轉換

char* szStr = "balabala";
CString str = CString(szStr);
USES_CONVERSION;
LPCWSTR wszClassName = A2CW(W2A(str));
str.ReleaseBuffer();

3、通過swprintf()轉換

char a[] = "C://";
strcat(a, "balabala.wav");
WCHAR wsz[64];
swprintf(wsz, L"%S", a);
LPCWSTR m_szFilename = wsz;

4、LPCWSTR實際上也是CONST WCHAR *類型,能夠通過MultiByteToWideChar函數轉換

char* szStr = "balabala";
WCHAR wszClassName[256];
memset(wszClassName,0,sizeof(wszClassName));
MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
sizeof(wszClassName)/sizeof(wszClassName[0]));

希望能對大家有所幫助。

Windows編程中char*轉LPCWSTR解決的方法總結