我刚开始使用vc ++ 2008.我只想看一条消息(对话框)。我已将我的项目创建为win32项目应用程序。
我编写了下面的代码来查看MessageBox
MessageBoxW(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);
但是我收到了错误
错误C2664:'MessageBoxW':无法将参数2从'const char [28]'转换为'LPCWSTR'
这是什么错误?看到一个简单的消息框显示我需要做什么。
答案 0 :(得分:4)
MessageBoxW
接受“宽字符串”参数,因此在每个字符串前添加L
:
MessageBoxW(NULL, L"Window Registration Failed!", L"Error!", MB_ICONEXCLAMATION | MB_OK);
答案 1 :(得分:0)
Jerry已经解释过,编译错误的原因是类型不匹配(你有一个函数需要宽字符串并且传递一个很窄的字符串)。我建议您不要使用宽或窄的特定功能(带有W或A后缀的功能),而是使用非后缀功能(在这种特殊情况下使用MessageBox)。 Windows API头文件包含的代码将根据您的构建设置选择正确的函数版本,即,如果您正在构建该软件的Unicode版本。
答案 2 :(得分:0)
您正在使用ASCII输入字符串作为MessageBoxW
而不是ASCII消息框。
请尝试使用以下代码:
MessageBoxA(NULL, "Window Registration Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);