標籤:windows lpcwstr char
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]));
希望能對大家有所協助。