最好说出具体语句怎样写,多谢!

解决方案 »

  1.   

    如果是赋值的时候注意定义字符串为unicode 即Cstring str = L"字符串";
    编译时记得按_unicode方式编译即可
    其他的应该都没有什么了
      

  2.   

    向CString赋值时,应该用_T("")。CString str = _T("UNICODE"),编译时用_UNICODE
      

  3.   

    CString内部可以工作在_UNICODE和非_UNICODE下,不需要担心。
    但给CString的变量赋值,如果是赋常量字符串,则需要将字符串加上 _T()。
    原理上讲:
       _T() 宏在_UNICODE被定义时被解释成L,而不定义_UNICODE时,则什么也不是。
    MFC内部是这样定义_T()宏的:
    #ifdef _UNICODE
       #define _T(x)  Lx
    #else
       #define _T(x)
    #endif
       所以对于常量字符串,加上_T()宏,就兼顾了两种编译。
      

  4.   

    修正一下,应该是
    #ifdef _UNICODE
       #define _T(x)  L#x
    #else
       #define _T(x)
    #endif
       注意,"#"在define语句中是连接符,即将#的左右两边的内容连接到一起。
    于是,_T("OK")在_UNICODE被定义时等价于L"OK",而不定义_UNICODE时等价于"OK"