我们正在将我们的 C++ COM 应用程序迁移为 unicode,作为此迁移的一部分,我们希望将 IDL 中的常量字符串也迁移到 unicode。
问题是目前我们仍然在 ANSI 和 UNICODE 中编译它,这意味着我们不能使用 L"String" 构造来声明宽图表。
目前,我们的字符串常量定义如下:
const LPSTR STRING_CONST_NAME = "字符串值";
我们想这样定义它:
const LP T STR STRING_CONST_NAME = "字符串值";
如果它是常规代码,我们只需添加 _T("STRING VALUE") 宏,它会在以 unicode 编译时将其转换为 L"STRING VALUE"
但据我所知,我们不能在 IDL 中使用它,因为 _T 是纯 C++ 构造。
我们的方法是否正确?也许我们无论如何都应该这样定义它:
const LP T STR STRING_CONST_NAME = L "字符串值";