I Speicherlecks auftreten werde, während der folgenden GDI-Code ausgeführt wird:GDI Leak Problem
HDC hdcScreen = GetDC(NULL);
HDC hdcMem = CreateCompatibleDC(hdcScreen);
HBITMAP hbmpOld = (HBITMAP) SelectObject(hdcMem, hBmp); // apparently here is the leak
// do something
SelectObject(hdcMem, hbmpOld); //placing the old object back. The return object is handled elseware
DeleteDC(hdcMem); // after CreateCompatibleDC
ReleaseDC(NULL, hdcScreen); // after GetDC
Ich sah schon bei ähnlichen Themen, wie this aber ich konnte nicht das Problem finden. Jede Hilfe wäre willkommen.
DeleteDC, Der Rückgabewert von ReleaseDC wurde auf "true" (keine Fehler) überprüft.
Danke, Tal.
woran denkst du, dass da ein gdi-leak ist? Der Taskmanager hat eine Spalte, die die Anzahl der von einem Prozess zugewiesenen GDI-Handles anzeigt. Wird der Code erhöht, wenn dieser Code in einer Schleife ausgeführt wird? –
Wo löschst du 'hBmp'? –
Dieser Code leckt nicht, es ist woanders. –