首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-29 
Visual Studio 2005中的字符串问题在2005下调用函数TextOutW(0,0, Test )编译后出错:errorC2664:BOOLCDC

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

热点排行