如题啦

解决方案 »

  1.   

    当设置了_UNICODE的时候,二者是一样的。否则_T在非UNICODE的时候是没有作用的。
    显然,_T更突显了代码的伸缩性。
      

  2.   

    如 L"hello"
    表示该字符串每个字符占连个字节。
      

  3.   


    定义了unicode后, 你可以看到_T宏的定义
    就是#define _T(X)  L##X, ##是黏贴意思, 也就是把L加到x的前面,  也比如: _T("x") == L"x"
      

  4.   

    // 如果是unicode,那么_T("") = L"";
    // 如果是非unicode,那么_T("") = "";
      

  5.   

    _T(), 也相当于_TEXT(), 用于UNICODE或非UNICODE程序中, 也就是说, 你的程序可以以UNICODE字符集编译, 也可以以非UNICODE编译, 编译器会自动将()中的字符串转换为合适的类型(char或wchar_t)。而L“”, 将“”号中的字符串转换为UNICODE字符。所以, 我们一般在可能需要国际化的程序代码中使用_T()或_TEXT()。具体请参加MSDN中有关Data Type Mappings的部分。