m_str=_T("");
m_str为cstring
请问_T是个什么函数

解决方案 »

  1.   

    如果定义了_UNICODE
    他就把里面的ansi字符串转变为wide字符串~~
    如果没定义了_UNICODE,没效果
      

  2.   

    _T  
    如果在使用它之前有 #define _UNICODE
    那么之后的字符为Unicode字符,
    如果没有 #define _UNICODE
    则定义的是Ansi的字符举个例子:
    #define _UNICODE
    m_str = _T("abc");
        那么结果是 'a', 0x00, 'b', 0x00, 'c', 0x00, 0x00, 0x00#undefine _UNICDOE
    m_str = _T("abc")
        内容将会是 'a', 'b', 'c', 0x00
      

  3.   

    _T 即 _TEXT
    如果程序中没有定义 UNICODE
    被编译器忽略。
    如果定义了UNICODE,
    把后面的字符串转换成双字节形式.在 Project --- Settings --- C/C++  --- 
    Gategory:General ---Preprocessor Definitions
    定义是否使用 UNICODE
    如果要使用,就把 _MCBS 改成 _UNICODE比如,如下程序
    #include <iostream>
    #include <TCHAR.h>
    using namespace std;
    int main(int argc,char* argv[])
    {
     TCHAR str1[]=_T("1234中国");
     cout<<"sizeof str1= "<<sizeof(str1)<<endl;
     return 0;
    }如果定义了_MBCS (没有定义 _UNICODE,这是默认情况)
    运行结果是
    sizeof str1= 9
    (因为 "1234" 4个字节,"中国" 4个字节, '\0' 1个字节,一共 9字节)
    如果定义了 _UNICODE (没有定义 _MBCS)
    运行结果是:
    sizeof str1= 14
    (因为 "1234" 8个字节,"中国" 4个字节, '\0' 2个字节, 一共 14字节)