Проблема с получением контекста устройства (HDC) окна наложения в C++.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Проблема с получением контекста устройства (HDC) окна наложения в C++.

Сообщение Anonymous »

Я разрабатываю приложение на C++, которое использует окно наложения для отображения визуальной информации на экране во время работы другого программного обеспечения. Однако у меня возникает постоянная проблема при попытке получить контекст устройства (HDC) окна наложения с помощью функции GetDC(hwndOverlay). Поначалу кажется, что код работает правильно, но через некоторое время GetDC начинает неоднократно давать сбой, что приводит к бесконечному циклу воссоздания окна наложения.
У меня есть реализован механизм закрытия и воссоздания окна наложения при сбое 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»