-3

我知道 _T(x) 宏基于定义将字符串文字转换为 unicode/多字节字符串,但是我发现我必须添加下划线和括号非常烦人,这真的让我很困惑,我不安静流利使用宏,所以我不知道,有没有办法检测所有字符串文字并将它们转换为正确的 unicode/多字节字符串?

4

3 回答 3

1

_T()并且_TEXT()是 C 运行时宏,而不是 Win32 宏。 TEXT()(无下划线)是 Win32 宏。即使它们本质上做同样的事情,您也应该只将 C 运行时宏与 C 函数一起使用,而将 Win32 宏与 Win32 函数一起使用。不要混合它们。

于 2014-03-23T04:51:40.600 回答
1

不,如果您希望代码在 Windows 上可移植,没有办法完全避免宏。您当然可以定义自己的宏,就像#define t(x) whatever_T_does您想节省一些击键一样,但这可能会激怒您代码的未来维护者。

于 2014-03-22T10:11:07.660 回答
0

你真的需要为多字节和 Unicode 编译的能力吗?如果你想要多字节,你不需要任何宏。在 Unicode 应用程序中,使用 L"literal string" 更容易,它不需要下划线或括号。

于 2014-03-22T14:12:34.383 回答