在测试使用OpenGL绘制的C ++ Windows应用程序时遇到以下问题。为了测试,我使用了GlowCode 9.1分析器。
在应用程序结束后,表明方法 GDI32!ChoosePixelFormat 泄漏了大量内存,超过6 MB。
应用程序根据openGL规范关闭所有资源,即调用:
wglMakeCurrent(iMainHDC, NULL);
wglDeleteContext(iMainHRC);
wglMakeCurrent(iHSHDC, NULL);
wglDeleteContext(iHSHRC);
DeleteGDI(iHSGDIBackBufferBitmap, iHSGDIBackBufferDC);
DestroyWindow(iHSWindowHandle);
DeleteGDI(iMainGDIBackBufferBitmap, iMainGDIBackBufferDC);
DestroyWindow(iMainWindowHandle);
所以不应该忘记破坏资源。
我是否需要运行其他一些释放程序才能摆脱这种内存泄漏?
我的目标是让应用程序在退出时泄漏0个字节。这可以完成吗?或者Windows图形库是否将一些数据分配为单例等?
这可能只是本地图形驱动程序的一个问题吗?