vc++6.0:CString a;
a.Format("%d",nChar);

编译能过VS2010 :
CString a;
a.Format("%d",nChar);
过不了编译,怎么回事啊?
CString a;
a.Format(_T("%d"),nChar);
编译能过.....纠结,到底怎么回事
各位前辈指点一下,菜鸟我刚接触MFC   纠结

解决方案 »

  1.   

    因为 VS2010 默认是 Unicode 环境编程。所以需用 _T 转换字符串。
      

  2.   

    同意楼上,正常情况下,对CString处理的时候必须加_T 转换字符串
      

  3.   

    VC6默认是ANSI,而VS2010中默认是Unicode,所以在处理时要加_T("")或者L"".
      

  4.   

    Visual C++里定义字符串的时候,用_T来保证兼容性,是一种数据类型,但是它不会产生结果,被编译系统的预处理系统来解释,VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。
            _T是将字符串转换为TCHAR,TCHAR是一个宏定义,当定义了UNICODE时TCHAR等同于 WCHAR,否则等同于CHAR。为了和VS2010兼容,建议使用TCHAR,而不要使用普通的CHAR。例子:TCHAR *s = _T("FSDF")。
           L将字符串转换为WCHAR,用于需要UNICODE的环境。例子:WCHAR *s = L"FSDF"。
      

  5.   

    VC6默认使用ANSI,VS2005开始默认使用UNICODE了