我遇到了内存泄漏,同时运行下面的代码GDI:GDI泄漏问题
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
我已经看了类似的主题,如this,但我无法找到问题。 任何帮助,将不胜感激。
DeleteDC,ReleaseDC返回值被检查为true(无错误)。
谢谢, Tal。
是什么让你觉得那里有一个gdi泄漏? Taskmanager有一列显示进程分配的GDI句柄的数量。如果此代码在循环中运行,计数会增加吗? – 2010-11-22 12:47:25
你在哪里删除'hBmp'? – 2010-11-22 13:07:17
此代码不泄漏,它在别处。 – 2010-11-22 14:01:17