windows中有两种字符集:ANSI和UNICODE。ANSI使用单字节方式,UNICODE使用双字节方式,方便处理双字节字符,例如汉字。_T()一般通常数相关,如_T("Hello"),如果编译一个程序为ANSI方式,_T()实际不起任何作用。如果编译一个UNICODE方式,则编译器会把"Hello"字符以UNICODE方式保存。
visual c++里边定义字符的时候,用_T来保证兼容性,vc支持ANSI和UNICODE两种字符方式,用_T()可以保证从ANSI编码类型转换到UNICODE编码类型的时候,程序不需要修改。如果将来不打算升级到UNICODE,那么不需要_T()。