定义了unicode并且cpp文件本身也保存为unicode编码CString str =L"简介";//没问题
CString str1 =_T("简介");//error C2001: 常数中有换行符,fatal error C1057: 宏展开中遇到意外的文件结束

解决方案 »

  1.   

    CString str1 =_T("简介");
    vs2005 compile pass
      

  2.   

    code page对否?有可能code page的问题。用英文试试
      

  3.   

    这种简单东西,不可能有bug的
      

  4.   

    定义了UNICODE,而且cpp文件也是保存成unicode,应该不会有code page的问题吧
      

  5.   

    vs2008也没问题
    看来vs2003在处理cpp文件为unicode编码时存在问题
      

  6.   

    vs2003是有这个问题
    vs2005的工程转换后在vs2003下打开编译,就会报关于文件为unicode编码的错(是错还是警告,记不清了,反正有问题就是了)
      

  7.   

    CString str1 =_T(" 简介 ");
    str1.Trim();
      

  8.   

    以前用2003时好象遇到了这个问题,凡是Unicode源文件中都不能使用中文字符串。
    2003的bug非常多,我自己发现的就有十几个,用了没多久就不敢用了,具体的bug现在都几不清了。
      

  9.   

    试了一下确实是BUG。#define __TT(x)      L ## x...CString str1 =  __TT("没问题");
      

  10.   

    CString str1 =  __TT("abc"); 
    英文字符没问题。