C++ 创建窗口不需要';无法工作,但不会给出错误消息

C++ 创建窗口不需要';无法工作,但不会给出错误消息,c++,window,C++,Window,我正在尝试创建一个窗口,没有出现任何窗口,但除了我在测试hWnd中输入的窗口外,我在任何地方都没有收到错误消息 #define WIN32_LEAN_AND_MEAN #include <Windows.h> #include "entity.h" LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case

我正在尝试创建一个窗口,没有出现任何窗口,但除了我在测试hWnd中输入的窗口外,我在任何地方都没有收到错误消息

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>

#include "entity.h"

LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message,wParam,lParam);
    }
    return 0;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wcex;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc= (WNDPROC)WndProc;
    wcex.cbClsExtra= 0;
    wcex.cbWndExtra= 0;
    wcex.hInstance= hInstance;
    wcex.hIcon= 0;
    wcex.hCursor= LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszMenuName= 0;
    wcex.lpszClassName= "Extt";
    wcex.hIconSm= 0;

    if(!RegisterClassEx(&wcex))
    {
        MessageBox(NULL, "FAILED TO REGISTER WINDOW CLASS", "ERROR", MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }

    HWND hWnd = CreateWindow("WinD", "Chair", WS_OVERLAPPEDWINDOW, 480, 480, 480, 480, NULL, NULL, hInstance, NULL);

    if (hWnd == NULL)
    {
        MessageBox(NULL, "FAILED TO CREATE WINDOW", "ERROR", MB_ICONEXCLAMATION | MB_OK);
        return 0;
    }

    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return (int)msg.wParam;
}
#定义WIN32_LEAN_和_MEAN
#包括
#包括“实体h”
LRESULT回调WndProc(HWND HWND,UINT消息,WPARAM WPARAM,LPARAM LPARAM)
{
开关(信息)
{
案例WM_销毁:
PostQuitMessage(0);
打破
违约:
返回DefWindowProc(hWnd、message、wParam、lParam);
}
返回0;
}
int APICENTRY WinMain(HINSTANCE HINSTANCE、HINSTANCE hPrevInstance、LPSTR lpCmdLine、int nCmdShow)
{
WNDCLASSEX wcex;
wcex.cbSize=sizeof(WNDCLASSEX);
wcex.style=CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc=(WNDPROC)WNDPROC;
wcex.cbClsExtra=0;
wcex.cbWndExtra=0;
wcex.hInstance=hInstance;
wcex.hIcon=0;
wcex.hCursor=LoadCursor(空,IDC_箭头);
wcex.hbrBackground=(HBRUSH)(彩色窗口+1);
wcex.lpszMenuName=0;
wcex.lpszClassName=“Extt”;
wcex.hIconSm=0;
如果(!RegisterClassEx(&wcex))
{
MessageBox(NULL,“注册窗口类失败”,“错误”,MB|U IConclamation | MB|U OK);
返回0;
}
HWND HWND=CreateWindow(“风”,“椅子”,WS_重叠窗口,480,480,480,480,NULL,NULL,hInstance,NULL);
if(hWnd==NULL)
{
MessageBox(空,“创建窗口失败”,“错误”,MB|U图标连接| MB|U确定);
返回0;
}
显示窗口(hWnd、nCmdShow);
更新窗口(hWnd);
味精;
while(GetMessage(&msg,NULL,0,0))
{
翻译信息(&msg);
发送消息(&msg);
}
返回(int)msg.wParam;
}
我只是不知道该怎么办了


我像那个家伙说的那样做了所有事情,我已经反复阅读了好几次页面,不明白为什么这不起作用。

您的类名参数不匹配。如果使用了
GetLastError()
,它将返回1407,即:

错误\u找不到\u WND\u类
1407(0x57F)
找不到窗口类。
更改wcex.lpszClassName=“Extt”
wcex.lpszClassName=“风”
或将第一个参数更改为
CreateWindow
“Extt”

用于从上次失败的系统调用中获取错误代码。查看它是什么,或者使用它获取字符串。好的,它说这是一个错误“找不到窗口类”。因此,我将两个windows类命名为相同的,现在它可以工作了。谢谢我总是会错过一些东西