Visual Studio 2005中的字符串问题
在2005下调用函数
TextOutW(0,0, "Test ")
编译后出错:
error C2664: 'BOOL CDC::TextOutW(int,int,const CString &) ' : cannot convert parameter 3 from 'const char [6] ' to 'const CString & '
Reason: cannot convert from 'const char [6] ' to 'const CString '
同样的调用在.NET 2003中则不会报错。
另外,如果改写为:
TextOutW(0,0,(LPCTSTR)( "Test "))
则可以通过编译,但执行后显示的是乱码。这是为什么?
出现这些错误是否与C++标准有关?
请高手指点,非常感谢!
[解决办法]
那就TextOutW(0,0,CString( "Test "))
[解决办法]
TextOutW 要求传入的字串也应是宽字符,你给它传char*,出错是应当的,
TextOutW(0,0,(LPCTSTR)( "Test "))这种强制转换不能转换编码,自然是乱码
[解决办法]
没错,2005版本默认的都是Unicode
但完全可以在工程属性中配置为非Unicode
[解决办法]
TextOutW(0,0,L "Test ")
这样试试
vs2005默认使用UNICODE