我有winapi函数LPCTSTR
的带有参数CreateFile
路径的函数Write。如何将char[]
转换为LPCTSTR
并将其传递给func?
附:我已经看过其他主题,没有什么有用的
答案 0 :(得分:3)
LPCTSTR
是const TCHAR*
的宏。 TCHAR
将是char
或wchar_t
(旧版Visual C ++中为unsigned short
),具体取决于是否定义了UNICODE
。您有几个选择:
使用TCHAR[]
代替char[]
。您可以使用TEXT
和T
宏来执行字符串文字。
取消定义UNICODE
并在没有广泛字符支持的情况下构建项目。 (相反,您可以将其定义并使用宽字符集而不是ANSI)。
执行从单字节到多字节字符集的转换。您可以找到有关字符集和转换函数here的更多信息。
第四个选项是使用CreateFileW
(或CreateFileA
,具体取决于您的愿望)而不是CreateFile
(它将映射到前面提到的任一函数,具体取决于{ {1}}预处理器标志)。
答案 1 :(得分:2)
致电CreateFileA
(明确要求缩小字符版本)并直接将char []
传递给它,不需要演员表。