运行以下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(无错误)。

谢谢,
塔尔

最佳答案

解决了。
问题是hBmp没有正确初始化,因此SelectObject发生了崩溃-没有错误,只是函数退出了,跳过了“ //做某事”和发布部分。

10-08 12:40