У меня есть реализован механизм закрытия и воссоздания окна наложения при сбое GetDC, но, похоже, это не решает основную проблему. Я проверил, что окно наложения создается правильно и что другие процессы или потоки не обращаются к HDC. Кроме того, я добавил отладочные сообщения для определения конкретного кода ошибки (GetLastError()), но они не дают никаких сведений о причине проблемы.
Вот соответствующий код. фрагмент:
Код: Выделить всё
HMODULE hModuleGlobal;
DWORD overlayThreadId;
HANDLE overlayThreadHandle;
uintptr_t mainModule = NULL;
bool visuals = false;
HWND hwndOverlay;
void DoMagic() {
if (GetAsyncKeyState(VK_F1) & 1)
{
visuals = !visuals;
PrintConsoleInfo();
}
if (hwndOverlay) {
HDC hdcOverlay = GetDC(hwndOverlay);
if (hdcOverlay == NULL) {
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/78352842/issue-with-obtaining-device-context-hdc-of-overlay-window-in-c[/url]
Мобильная версия