Горячая загрузка оконной DLL: Win32 Window Recration - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь выполнить горячую перезагрузку в DLL, которая содержит мои графические API, включая окно Win32. Я попытался закрыть окно, закрыть DLL и перезагрузить библиотеку с новым окном:

DestroyWindow(window_handle);
ReleaseDC(window_handle, hDC);
wglDeleteContext(hRC);

К сожалению, когда я пытаюсь создать второе окно, RegisterClassEx не удается. Почему это может быть? Нужно ли ждать события WM_DESTROY перед закрытием DLL?

WNDCLASSEX wc;

const char *className = "GameWindow";

wc.cbSize = sizeof(WNDCLASSEX);
wc.style = 0;
wc.lpfnWndProc = GraphicsWrapper::sWndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = GetModuleHandle(NULL);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszMenuName = NULL;
wc.lpszClassName = className;
wc.hIconSm = LoadIcon(NULL, IDI_APPLICATION);

if (!RegisterClassEx(&wc))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...