“T”在字符串中表示什么。例如_T(“Hello”)。我在需要unicode支持的项目中看到了这一点。它实际告诉处理器
答案 0 :(得分:28)
_T
代表“文字”。当且仅当您使用Unicode支持编译源时,它才会将您的文字转换为Unicode宽字符文字。请参阅http://msdn.microsoft.com/en-us/library/c426s321.aspx。
答案 1 :(得分:13)
来自MSDN:
使用
_T
宏一般编码文字字符串,因此它们在Unicode下编译为Unicode字符串或在没有Unicode的情况下编译为ANSI字符串(包括MBCS)
答案 2 :(得分:12)
它实际上用于需要Unicode 和 ANSI支持的项目。它告诉编译器将字符串文字编译为Unicode或ANSI,具体取决于预编译器定义的值。
为什么你想这样做是另一回事。如果您想单独支持Unicode,那么只需编写Unicode,在本例中为L"Hello"
。当您需要支持Windows NT及更高版本(支持Unicode)和Windows 9x / ME(不支持Unicode)时,会添加_T()
宏。目前,使用这些宏的任何代码都已过时,因为所有现代Windows版本都是基于Unicode的。
答案 3 :(得分:0)
它代表TEXT。您可以在使用IDE工具时查看定义:
#define _TEXT(x) __T(x)
但是我想将其记住为“可变形”或“ swi-T-ch”:
L"Hello" //change "Hello" string into UNICODE mode, in any case;
_T("Hello") //if defined UNICODE, change "Hello" into UNICODE; otherwise, keep it in ANSI.