VS6.0里写个最简单的语句
MessageBox("Hello,World!");
编译运行没有任何错误。
而在VS2005写
MessageBox("Hello,World!");
出现错误提示:
error C2664: 'CWnd::MessageBoxW' : cannot convert parameter 1 from 'const char [13]' to 'LPCTSTR'
解决方法是:
MessageBox(_T("Hello,World!"));或MessageBox(TEXT("Hello,World!"));
原因:
2005中默认的是unicode的,char是非unicode的。不同于以前在6.0中的写法MessageBox("Hello,World!")。
也可以在VS2005项目属性中改变设置 General->Character Set->Not Set
其他类似需要直接使用"Hello World"常量字符串的地方解决方法同上。
本文介绍了在Visual Studio 2005中使用MessageBox显示字符串时遇到的Unicode问题及解决方案。由于VS2005默认使用Unicode,直接使用char类型字符串会引发错误。文章提供了两种解决方法:使用_T()宏或TEXT()宏将字符串转换为Unicode格式。

被折叠的 条评论
为什么被折叠?



