GetLastError пишет что все хорошо, но CreateWindowEx возвращает 0

251
15 октября 2017, 23:34

Код:

int Window::Create() {
    WNDCLASSEX wcex{};
    auto szWindowClass = _T("Scream2DEngineWindow");
    auto hInstance = GetModuleHandle(nullptr);
    auto hIcon = LoadIcon(nullptr, IDI_APPLICATION);
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style          = CS_DBLCLKS;
    wcex.lpfnWndProc    = WndProc;
    wcex.cbClsExtra     = 0;
    wcex.cbWndExtra     = 0;
    wcex.hInstance      = hInstance;
    wcex.hIcon          = hIcon;
    wcex.hCursor        = LoadCursor(nullptr, IDC_ARROW);
    wcex.hbrBackground  = GetSysColorBrush(COLOR_3DFACE);
    wcex.lpszMenuName   = nullptr;
    wcex.lpszClassName  = szWindowClass;
    wcex.hIconSm        = hIcon;
    if (!RegisterClassEx(&wcex)) {
        return 1;
    }
    auto hWnd = CreateWindowEx(0, szWindowClass, "Title", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 100, HWND_DESKTOP, nullptr, hInstance, nullptr);
    std::cout << GetLastError() << std::endl;
    if (!hWnd) {
        return 2;
    }
    ShowWindow(hWnd, SW_SHOW);
    return 0;
}

В консоль выводит "0" (GetLastError), но функция возвращает 2, то есть hWnd == 0.

В чем ошибка?

Answer 1

GetLastError надо вызывать сразу же.

auto hWnd = CreateWindowEx(..);
auto err = GetLastError();
std::cout << err << std::endl;
READ ALSO
&ldquo;Трехмерный&rdquo; map в C++

“Трехмерный” map в C++

Здравствуйте! Возникла необходимость создать "трёхмерный" массив с двумя целочисленными и одним вещественным индексомЯ решил воспользоваться...

270
Не отлаживаает программу в QT

Не отлаживаает программу в QT

Когда пытаюсь отладить программу возникает следующая проблема,что делать?

198
Проверка правильности ввода значения

Проверка правильности ввода значения

Необходимо проверить правильность ввода числа на входе (пример: 8 -правильно, а - ошибка)Знаю, что для c++ можно сделать так:

235
Ошибка с подключением string [требует правки]

Ошибка с подключением string [требует правки]

Вот тут собственно ошибка в чем проблема? я не могу понять бред какой-тоВ stdafx

242