Я написал DLL, которая экспортирует функцию, которая создает окно, используя RegisterClassExW
и CreateWindowExW
. Каждое сообщение извлекается через
GetMessageW(&msg, wnd_handle, 0, 0);
TranslateMessage(&msg);
DispatchMessageW(&msg);
Также есть программа, которая загружает DLL и вызывает функцию.
Несмотря на метод создания окна Unicode, wParam
в сообщении WM_CHAR
всегда содержит символы ASCII, даже если я набираю некоторые символы не-ASCII или использую Alt + (код). Вместо UTF-16 wParam
содержит некоторый символ ASCII между «A» и «z».
WndProc
является статической функцией внутри DLL.
Проблема не возникает, когда весь код, связанный с окнами, находится внутри одной программы.
Есть ли способ всегда иметь сообщения Unicode WM_CHAR
внутри окна DLL?