Не регистрируется класс окна

На моменте регистрации проверяю, что если окно не зарегистрировано то вызывается message box собственно он вызвался, окно не появилось

#include "framework.h"
#include "OpengGl.h"
#include <Windows.h>

LRESULT WINAPI WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
    switch (msg)
    {
    case WM_DESTROY: {
        PostQuitMessage(0);
        break;
    }

    default:
        return DefWindowProc(hwnd, msg, wParam, lParam);
    }
}

int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hPrewInstance,LPSTR cmdLine,int cmdShow)
{
    MSG msg;
    HWND hwnd;
    WNDCLASSEX wc;

    wc.cbSize = sizeof(wc);
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
    wc.hInstance = hinstance;
    wc.lpszClassName = L"";
    wc.lpszMenuName = NULL;
    wc.lpfnWndProc = WndProc;
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    

    RegisterClassEx(&wc);

    if (!RegisterClassEx(&wc))
    {
        MessageBox(NULL, L"ERROR", NULL, NULL);
    }
    hwnd = CreateWindow(wc.lpszClassName,
        L"APP",
        WS_OVERLAPPED,
        0, 0, 600, 600,
        NULL, NULL, hinstance, NULL);
    ShowWindow(hwnd, cmdShow);
    
    UpdateWindow(hwnd);

    while (GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

Ответы (2 шт):

Автор решения: gbg
  1. Структурку надо забить нулями перед использованием (ZeroMemory()). Это стандартная практика при работе с WinAPI

  2. Проявите фантазию - задайте непустое имя класса окна. Это обязательно.

В дальнейшем, если у вас что-то в венде не работает, посмотрите, что вернула сразу после ошибки функция GetLastError()

→ Ссылка
Автор решения: citrus

wc.lpszClassName = L""; оказалось надо туда хоть что то вписать! если у кого такая проблема все свойства wc заполняйте.....

→ Ссылка