我知道_T(x)宏将字符串文字转换为unicode / multibyte 基于定义的字符串,但是我觉得非常烦人,我必须做一个 下划线和括号,它真的让我困惑,我不会安静流利 macros所以我不知道,有没有办法检测所有字符串文字和转换 它们是一个正确的unicode / multibyte字符串?
答案 0 :(得分:1)
不,如果您希望代码在Windows上可移植,则无法完全避免使用宏。你当然可以定义自己的宏,如#define t(x) whatever_T_does
,如果你想节省一些键击,但这可能会激怒你的代码的未来维护者。
答案 1 :(得分:1)
_T()
和_TEXT()
是C运行时宏,而不是Win32宏。 TEXT()
(无下划线)是Win32宏。即使他们基本上做同样的事情,你应该只使用C运行宏与C函数,Win32宏与Win32函数。不要混合它们。
答案 2 :(得分:0)
您真的需要能够为多字节和Unicode编译吗?如果您想要多字节,则不需要任何宏。在Unicode应用程序中,使用L“文字字符串”更容易,它不需要下划线或括号。