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

同样的代码用vc2005时有时候会报错,有时候不会,该怎么处理

2012-02-04 
同样的代码用vc2005时有时候会报错,有时候不会MessageBox(NULL, 注册窗口时出错! , 出错啦 ,0)cannot

同样的代码用vc2005时有时候会报错,有时候不会
MessageBox(NULL, "注册窗口时出错! ", "出错啦 ",0);

cannot   convert   parameter   2   from   'const   char   [17] '   to   'LPCWSTR '

有时出现这种错误,那么工程就一直会出现这种错误,同样的代码,有时却不会报错

为什么?是不是设置的问题?

[解决办法]
这是字符串转换的问题啊
你把MessageBox(NULL, "注册窗口时出错! ", "出错啦 ",0);
里边的字符串  "注册窗口时出错! "  "出错啦 "
改成 事先声明的应该就没了
char a[56]= "注册窗口时出错! ";
char b[56]= "出错啦 ";
MessageBox(NULL,a,b,0);

这个样子应该不会出错了

[解决办法]
这个是因为你建立的环境的UNICODE。
MessageBox 是一个宏,会按UNICODE展开成MessageBoxW
MessageBoxW第二,三个参数是wchar_t。
所以要加一个 "L "
MessageBox( NULL, L "注册窗口时出错! ", L "出错啦 ", 0 );
TEXT( "注册窗口出错 ")
或者用TEXT()宏。TEXT宏会根据UNICODE展开成L或者空

详细请参考WINDOWS程序设计

热点排行