EnumWindows和CloseHandle

时间:2013-10-27 16:36:22

标签: c windows winapi

我是否需要在CloseHandle()返回的句柄上调用EnumWindows()

2 个答案:

答案 0 :(得分:6)

你只对在kernel32中的函数返回的句柄上使用CloseHandle()。它们被引用计数,关闭最后一个句柄会破坏对象。文件,互斥体,事件,那种对象。

窗口句柄不同,它们的生命周期由用户决定。或者在程序中显式调用DestroyWindow()。枚举窗口时,您不想调用DestroyWindow()。

GDI句柄不同,它们通常具有专用的发布功能。 CreatePen vs DeleteObject,GetDC vs ReleaseDC,CreateDC vs DeleteDC等。如有疑问,请始终查阅相应的创建函数,以了解如何再次发布它。 SDK文档永远不会跳过它。这是通过省略来记录的,EnumWindows文档并没有说你需要释放句柄,所以你没有。

所以没有。

答案 1 :(得分:0)

我会说不。那是为了摧毁你不再需要的东西。你没有打电话给CreateWindow