宏的替代_T(" char")或_TEXT(" char")

时间:2014-03-22 10:05:40

标签: c winapi tchar

我知道_T(x)宏将字符串文字转换为unicode / multibyte 基于定义的字符串,但是我觉得非常烦人,我必须做一个 下划线和括号,它真的让我困惑,我不会安静流利 macros所以我不知道,有没有办法检测所有字符串文字和转换 它们是一个正确的unicode / multibyte字符串?

3 个答案:

答案 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“文字字符串”更容易,它不需要下划线或括号。