“T”在字符串中代表什么。例如 _T("Hello")。我在需要 unicode 支持的项目中看到了这一点。它实际上告诉处理器什么
问问题
60340 次
4 回答
43
_T
代表“文本”。当且仅当您使用 Unicode 支持编译源时,它才会将您的文字转换为 Unicode 宽字符文字。请参阅http://msdn.microsoft.com/en-us/library/c426s321.aspx。
于 2013-03-19T11:24:40.780 回答
16
它实际上用于需要 Unicode和ANSI 支持的项目。它告诉编译器根据预编译器定义的值将字符串文字编译为 Unicode 或 ANSI。
为什么要这样做是另一回事。如果您想自己支持 Unicode,那么只需编写 Unicode,在这种情况下L"Hello"
。_T()
当您需要支持 Windows NT 及更高版本(支持 Unicode)和 Windows 9x/ME(不支持)时,添加了该宏。如今,使用这些宏的任何代码都已过时,因为所有现代 Windows 版本都是基于 Unicode 的。
于 2013-03-19T11:24:50.410 回答
15
来自 MSDN:
使用
_T
宏对文字字符串进行一般编码,因此它们在 Unicode 下编译为 Unicode 字符串或在没有 Unicode 的情况下编译为 ANSI 字符串(包括 MBCS)
于 2013-03-19T11:23:07.707 回答
4
它代表文本。您可以在使用 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.
于 2019-10-18T16:32:04.123 回答