我試圖將一個LPCSTR
字符串轉換爲LPCTSTR
字符串。我想連接兩個字符串,當我嘗試這樣如何將LPCSTR字符串轉換爲LPCTSTR字符串?
LPCTSTR str1 = L"Raja"
LPCSTR str2 = "Kumar"
wcscat_s(str1,(LPCTSTR)str2);
我發現O/P像拉賈.... R(junkvalues)....怎麼能強制轉換LPCSTR
到LPCTSTR
?
我試圖將一個LPCSTR
字符串轉換爲LPCTSTR
字符串。我想連接兩個字符串,當我嘗試這樣如何將LPCSTR字符串轉換爲LPCTSTR字符串?
LPCTSTR str1 = L"Raja"
LPCSTR str2 = "Kumar"
wcscat_s(str1,(LPCTSTR)str2);
我發現O/P像拉賈.... R(junkvalues)....怎麼能強制轉換LPCSTR
到LPCTSTR
?
LPCTSTR
可以是普通字符或寬字符,具體取決於您的項目設置。此外,你不可能連接寬字符串和普通字符串。您需要將其中一個轉換爲兼容的格式(寬至多字節或反之),然後連接。
假設您希望目標是一個寬字符串,您需要將"Kumar"
轉換爲寬字符字符串。爲此,請使用MultiByteToWideChar
函數和適當的代碼頁。
查閱this有關MSDN和John鏈接的KB文章。
請參閱這些注意事項:Unraveling Strings in Visual C++。筆記討論了您將在Microsoft C++開發中看到的各種字符串以及如何在它們之間進行轉換。
如果您的代碼是用UNICODE編譯的,MultiByteToWideChar是唯一的出路。
或者你可以這樣做。 7位ASCII - > wchar應該很容易。
TCHAR str3[256] = { 0 };
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];
謝謝.cook – Rajakumar 2009-10-29 09:42:47