我有功能写有参数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