GetDC failed - robienie screenshotow z win32

GetDC failed - robienie screenshotow z win32
lambdadziara
  • Rejestracja:ponad 6 lat
  • Ostatnio:około 14 godzin
  • Postów:442
0

Mam skrypt w pythonie ktory robi screenshoty w while true, korzystajac z api windowsowego. Srednio po 20 minutach skrypt sam sie wylacza z tym błędem https://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/e0cf94eb-5209-4fac-9ef3-90a94daa50b9/createcompatiblebitmap-is-failed-when-running-in-x64-mode?forum=vcgeneral . Biliblioteka do komunikacji z winapi sprawdza czy rezultat jakiejs funkcji to null, jesli tak to drukuje ten blad i wylacza program. Usunalam wiec te sys.exit dla tych warunkow aby sprawdzic co sie stanie. Program nadal sie wylacza, ale z bledem "GetDC failed", ten blad nie jest juz printowany z poziomu biblioteki wiec pochodzi pewnie bezposrednio z winapi. Czytam tu na przyklad https://stackoverflow.com/questions/8261652/assuming-that-getdchwnd-is-called-as-the-first-instruction-on-wm-create-for-w ze nie da sie uratowac programu przez wyjatkiem GetDC. Mam pomysl, aby drugi program ktory bedzie sprawdzac logi i jezeli ostatnia linijka logu to blad GetDC to po prostu automatycznie uruchoimi skrypt z powrotem. Czy to dobry pomysl, moze macie inne pomysly?

Stefan_3N
  • Rejestracja:około 6 lat
  • Ostatnio:około 2 miesiące
  • Postów:145
1

Nie programuje w pytonie, ale za to w WinApi całkiem sporo.
Uruchom Menadżera zadań systemu, włącz kolumny "Obiekty User" i "Obiekty GDI".
Teraz włącz Twój program i działaj w nim. Obserwuj w Menedżerze czy przyrasta liczba obiektów w Twoim programie.
Jeśli tak, tzn. że nie zwalniasz tych kontekstów (albo tworzonych bitmap).


AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około miesiąc
  • Postów:3561
0

w gołym Win API zasoby np DC należy zwalniać (jak @Stefan_3N zauważył)
jedyne komfortowe w tym wzgledzie środowisko jako pamiętam, MFC, robiło to w destruktorach, ale taka (pozytywna akurat) uroda C++.

Jak w Pythonie, z braku wyrazistych destruktorów? pewnie tzreba jawnie ...


Bo C to najlepszy język, każdy uczeń ci to powie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.