读书人

Visual Studio 2005中的字符串有关问题

发布时间: 2012-02-29 16:44:11 作者: rapoo

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

读书人网 >C++

热点推荐