如何将char []转换为LPCTSTR?

时间:2014-03-13 16:43:57

标签: c++ winapi

我有winapi函数LPCTSTR的带有参数CreateFile路径的函数Write。如何将char[]转换为LPCTSTR并将其传递给func? 附:我已经看过其他主题,没有什么有用的

2 个答案:

答案 0 :(得分:3)

LPCTSTRconst TCHAR*的宏。 TCHAR将是charwchar_t(旧版Visual C ++中为unsigned short),具体取决于是否定义了UNICODE。您有几个选择:

  1. 使用TCHAR[]代替char[]。您可以使用TEXTT宏来执行字符串文字。

  2. 取消定义UNICODE并在没有广泛字符支持的情况下构建项目。 (相反,您可以将其定义并使用宽字符集而不是ANSI)。

  3. 执行从单字节到多字节字符集的转换。您可以找到有关字符集和转换函数here的更多信息。

  4. 第四个选项是使用CreateFileW(或CreateFileA,具体取决于您的愿望)而不是CreateFile(它将映射到前面提到的任一函数,具体取决于{ {1}}预处理器标志)。

答案 1 :(得分:2)

致电CreateFileA(明确要求缩小字符版本)并直接将char []传递给它,不需要演员表。

相关问题