C++ Вопрос Lazy importer не работает с DefWindowProc

Начинающий
Статус
Оффлайн
Регистрация
25 Апр 2022
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Похожая ошибка разбиралась разрабом, но эти решения не помогли. -
Пожалуйста, авторизуйтесь для просмотра ссылки.

Там ситуация немного другая, как я понял.

Пример кода

C++:
#include <windows.h>

#include "lazy_importer.h"

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PWSTR pCmdLine, int nCmdShow) {
                    
    MSG  msg;   
    WNDCLASSW wc = {0};
    wc.lpszClassName = L"appClass";
    wc.hInstance     = hInstance;
    wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
    wc.lpfnWndProc   = WndProc;
    wc.hCursor       = LoadCursor(0, IDC_ARROW);
 
    RegisterClassW(&wc);
    CreateWindowW(wc.lpszClassName, L"appTitle",
                  WS_OVERLAPPEDWINDOW | WS_VISIBLE,
                  100, 100, 250, 150, 0, 0, hInstance, 0); 

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

    return (int) msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
    WPARAM wParam, LPARAM lParam) {

auto user32 = LI_FN(LoadLibraryA)("user32.dll");
    
    switch(msg) {
 
        case WM_DESTROY:
      
            PostQuitMessage(0);
            break;
    }

      return LI_FN(DefWindowProcW).in(user32)(hwnd, msg, wParam, lParam);
}
Знает кто, как это можно решить?
Спасибо.
 
IRQL_APC_LEVEL
Пользователь
Статус
Оффлайн
Регистрация
25 Авг 2018
Сообщения
211
Реакции[?]
88
Поинты[?]
3K
Функция DefWindowProcW (из user32) форвардится в ntdll.NtdllDefWindowProc_W. Так что либо вызывай напрямую NtdllDefWindowProc_W (из ntdll), либо делай так, как написал человек выше.
 
Начинающий
Статус
Оффлайн
Регистрация
25 Апр 2022
Сообщения
5
Реакции[?]
0
Поинты[?]
0
Функция DefWindowProcW (из user32) форвардится в ntdll.NtdllDefWindowProc_W. Так что либо вызывай напрямую NtdllDefWindowProc_W (из ntdll), либо делай так, как написал человек выше.
Пока такой вариант рабочий, спасибо
 
Сверху Снизу