2009-10-29 108 views
1

我試圖將一個LPCSTR字符串轉換爲LPCTSTR字符串。我想連接兩個字符串,當我嘗試這樣如何將LPCSTR字符串轉換爲LPCTSTR字符串?

LPCTSTR str1 = L"Raja" 
LPCSTR str2 = "Kumar" 
wcscat_s(str1,(LPCTSTR)str2); 

我發現O/P像拉賈.... R(junkvalues)....怎麼能強制轉換LPCSTRLPCTSTR

回答

1

LPCTSTR可以是普通字符或寬字符,具體取決於您的項目設置。此外,你不可能連接寬字符串和普通字符串。您需要將其中一個轉換爲兼容的格式(寬至多字節或反之),然後連接。

假設您希望目標是一個寬字符串,您需要將"Kumar"轉換爲寬字符字符串。爲此,請使用MultiByteToWideChar函數和適當的代碼頁。

查閱this有關MSDN和John鏈接的KB文章。

2

請參閱這些注意事項:Unraveling Strings in Visual C++。筆記討論了您將在Microsoft C++開發中看到的各種字符串以及如何在它們之間進行轉換。

+0

謝謝.cook – Rajakumar 2009-10-29 09:42:47

0

如果您的代碼是用UNICODE編譯的,MultiByteToWideChar是唯一的出路。

或者你可以這樣做。 7位ASCII - > wchar應該很容易。

TCHAR str3[256] = { 0 }; 
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i]; 
相關問題