同样的代码用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程序设计