_T在CString中代表什么

时间:2013-03-19 11:20:56

标签: c++ unicode cstring

“T”在字符串中表示什么。例如_T(“Hello”)。我在需要unicode支持的项目中看到了这一点。它实际告诉处理器

4 个答案:

答案 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.