如何在Windows API中指定与编码无关的字符串常量?

时间:2014-12-21 05:26:36

标签: c++ string winapi unicode character-encoding

在C ++中,可以使用语法"string"指定ASCII字符串常量,并且可以使用语法L"string"指定Unicode字符串常量。在Windows API中,这些字符串常量的类型分别称为LPCSTRLPCWSTR。还有宏LPCTSTR在编译程序的任何编码中指定字符串常量。字符串常量是否有类似的语法,其中字符串将以ASCII或Unicode编码,具体取决于程序的编译方式?

基本上我是在询问如何在C ++中指定LPCTSTR常量。必须有一种比使用#ifdef _UNICODE并编写需要字符串常量的每一行的两个版本更简单的方法。

1 个答案:

答案 0 :(得分:3)

使用_TTEXT定义字符串文字。

e.g。

SomeOtherMethod( _T( "Hello" ) );

// Becomes either MyMethodA or MyMethodW.
MyMethod( TEXT( "Hello" ) );