写了一个小程序用来处理数据,用到了MFC框架来显示界面。当程序运行时间较短时没有问题,当程序长时间运行时出现了莫名其妙的崩溃。直到有一次弹出了对话框提示“无法找到所需的资源”。
同时之前有注意到程序运行到GetDC()处停止过,再结合这篇文章告诉你GetDC()没有释放造成的后果(https://www.cnblogs.com/fredliu/p/4932177.html)找到了问题所在。
原来是因为在调用GetDC()获取句柄之后,没有及时释放,导致了程序占用了超多的GDI对象,如下图所示:
在代码中及时调用ReleaseDC(pDC)之后,GDI对象数量就稳定在一个低水平了: