######使用vs2022创建第一个窗口
使用代码###### #include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int tbn = MessageBox(NULL, "Hello,Visual Studio!", "消息窗口", MB_OKCANCEL | MB_ICONQUESTION);
if (tbn == IDCANCEL)
{
MessageBox(NULL, "取消", "取消操作", 0);
}
return 0;
}
1>已启动生成: 项目: 33, 配置: Debug x64
1>源.cpp
1>G:\c\33\源.cpp(5,98): error C2664: “int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)”: 无法将参数 2 从“const char [21]”转换为“LPCWSTR”
1>G:\c\33\源.cpp(5,29): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winuser.h(9161,1): message : 参见“MessageBoxW”的声明
1>G:\c\33\源.cpp(9,47): error C2664: “int MessageBoxW(HWND,LPCWSTR,LPCWSTR,UINT)”: 无法将参数 2 从“const char [5]”转换为“LPCWSTR”
1>G:\c\33\源.cpp(9,20): message : 与指向的类型无关;强制转换要求 reinterpret_cast、C 样式强制转换或函数样式强制转换
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\um\winuser.h(9161,1): message : 参见“MessageBoxW”的声明
1>已完成生成项目“33.vcxproj”的操作 - 失败。
生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个
尝试以下两种方法:
(1)在字符串前面加L,如下:
int tbn = MessageBox(NULL, L"Hello,Visual Studio!", L"消息窗口", MB_OKCANCEL | MB_ICONQUESTION);
if (tbn == IDCANCEL)
{
MessageBox(NULL, L"取消", L"取消操作", 0);
}
(2)如果(1)不行,采用下面的方法:
在项目名称上,点击鼠标右键,弹出菜单,选择 属性->配置属性->高级,在高级属性中,将字符集改为“未设置”或者“多字符集”