我打電話給返回LPWSTR
(該字符串包含一個文件路徑)的C++方法,但我需要將其轉換爲LPSTR
以繼續。C++中的字符串類型:如何將LPWSTR轉換爲LPSTR?
我從來沒有使用過C++,即使不同的字符串類型在這裏詳細解釋:http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc,我感到困惑。
當我投LPWSTR
到LPTSTR
(應該等於LPSTR
在我的應用程序中),我得到一個Unicode符號。雖然我猜這種情況在這種情況下不適用,但我不明白爲什麼它只返回一個字符,而不是將LPWSTR
的所有雙字節字符以某種方式解釋爲1字節字符。我發現對WideCharToMultiByte
函數的引用,這顯然可以將LPWSTR
轉換爲std::string
,而我又不能將其轉換爲LPSTR
。
那麼從LPWSTR
獲得LPSTR
有點簡單嗎?
您不需要投射,您需要進行轉換。 http://msdn.microsoft.com/en-us/library/87zae4a3.aspx爲您的情況,使用CW2A – 2014-08-28 13:32:11
請參閱[這個問題](http://stackoverflow.com/questions/13447756/issue-in-converting- wchar-t-to-char)作爲示例轉換代碼。 (這個人對轉換結果有疑問,但你應該專注於轉換本身。) – 2014-08-28 13:41:46
我試着將CW2A pszA(lpwstr)分配給我的LPSTR變量,它工作正常。但它不能編譯,因爲我試圖在我的方法結束時將此變量作爲LPSTR返回。我可以使用CW2A返回我分配的價值嗎? – 2014-08-28 13:44:38