是否有必要删除渲染上下文并销毁设备上下文?

时间:2013-04-01 18:02:44

标签: c++ winapi opengl

在为OpenGL使用win32 api时是否有必要删除HDC和HRC?我认为Win32API会在窗口关闭时销毁它们吗?

澄清:HRC是HGLRC对象。

3 个答案:

答案 0 :(得分:7)

是“必要的”吗?如果您的流程在关闭窗口后自行终止,请执行。 Windows将清理这些类型的未完成句柄。

你应该吗?绝对。您应该始终清理在应用程序中使用的对象。在地板上放下东西以便操作系统清理是不好的做法。如果没有其他原因,您可能希望在关闭旧窗口后创建新窗口。在这种情况下,你有这个垃圾HGLRC躺在那里占用宝贵的资源。

答案 1 :(得分:0)

除了关闭窗口之外,您还要担心其他问题。例如,请阅读http://blogs.msdn.com/b/oldnewthing/archive/2013/03/06/10399678.aspx,其中说明对象的所有者在将其选入DC时无法将其删除。

答案 2 :(得分:0)

尽快释放(不要删除)HDC。我已经完成了OpenGL,所以我不完全知道HGLRC的用途,但我怀疑它的处理方式类似。拿到把手很便宜;坚持他们可能会有问题。