我有功能寫有參數LPCTSTR
winapi函數的路徑CreateFile
。如何將char[]
轉換爲LPCTSTR
並將其傳遞給func? P.S.我「已經看到其他的主題,並沒有什麼有用的如何將char []轉換爲LPCTSTR?
回答
LPCTSTR
是宏const TCHAR*
。TCHAR
要麼是取決於是否UNICODE
(在舊版本的Visual c unsigned short
++)char
或wchar_t
定義。你有幾個選項:
使用的
TCHAR[]
代替char[]
您可以使用TEXT
和T
宏做到這一點,對於字符串字面量 。
取消定義
UNICODE
並構建您的項目時不支持寬字符。 (相反,您可以將其定義並使用寬字符集而不是ANSI)。執行從單個字節到多字節字符集的轉換。你可以找到更多關於字符集和轉換函數的信息here。
A中提出的選項是使用CreateFileW
(或CreateFileA
取決於你的慾望)而不是CreateFile
(將映射到任何一個取決於UNICODE
預處理器標誌前面提到的函數)。
它是'char'或'wchar_t' –
爲什麼你會在新代碼中使用TCHAR等? –
@DavidHeffernan而'wchar_t'是'unsigned short'的一個typedef(儘管如果內存服務的話,他們在C++ 11中將它添加爲一個原始類型 - [他們確實](http://msdn.microsoft.com /en-us/library/dh8che7s.aspx))。 –
請致電CreateFileA
(明確要求窄字符版本),並直接將char []
直接傳遞給它,不需要強制轉換。
它的工作原理!謝謝! – prozac631
@prozac現在你的程序被困在ANSI字符集中。你爲什麼想要對自己施加這種衝擊。我們其他人花了數年的時間學習藐視ANSI。這是2014年。世界上不是每個人都會說英語。 –
@David這個選擇已經通過'char'完成。 (好吧,它可能是UTF8,但Windows會讓你非常痛苦。) –
- 1. 轉換爲const char *到LPCTSTR
- 2. 如何將unsigned char轉換爲visual C++中的LPCTSTR?
- 3. C++從LPCTSTR轉換爲const char *
- 4. 轉換 '爲const char *' 到 'LPCTSTR' 的CreateDirectory
- 5. 如何將int轉換爲LPCTSTR? Win32
- 6. 無法將char [33]轉換爲LPCTSTR,或者如果我轉換爲LPCTSTR所需的結果沒有得到
- 7. 如何將System :: Char轉換爲C++ char
- 8. 如何將unsigned char *轉換爲char *
- 9. CString到LPCTSTR轉換
- 10. 將CString轉換爲LPTSTR和LPCTSTR
- 11. JNI:無法將jstring轉換爲LPCTSTR?
- 12. 將字符串轉換爲LPCTSTR
- 13. 將char *轉換爲char? C++
- 14. C++ LPCTSTR to char *
- 15. CHAR到LPCTSTR
- 16. *將char轉換爲main並將* char轉換爲struct
- 17. 如何將LPCSTR字符串轉換爲LPCTSTR字符串?
- 18. 如何將* char轉換爲_TCHAR?
- 19. 如何將char轉換爲實際值?
- 20. 如何將unsigned char轉換爲jbyteArray
- 21. 如何將NSString轉換爲char?
- 22. Android - 如何將KeyEvent KeyCode轉換爲Char?
- 23. 如何將char向量轉換爲stringstream
- 24. 如何將char *轉換爲float xcode
- 25. 如何在android中將char'轉換爲\'?
- 26. 如何將int轉換爲char *?
- 27. 如何將wchar_t **轉換爲char **?
- 28. 如何將int轉換爲signed char?
- 29. 如何將PCWSTR轉換爲char []或wchar_t []
- 30. 如何將System :: String ^轉換爲const char *?
我建議使用這些版本的廣泛版本,而不是'T *'版本,除非您打算支持極其舊版本的Windows。 – chris
[http://social.msdn.microsoft.com/Forums/vstudio/en-US/b073d1cb-cb16-4956-b3ef-9021265f8efe/convert-char-to-lpctstr]? – Jayce