我需要调用CloseHandle()
返回的句柄EnumWindows()
吗?
问问题
423 次
2 回答
6
您只能在 kernel32 中的函数返回的句柄上使用 CloseHandle()。它们是引用计数的,关闭最后一个句柄会破坏对象。文件,互斥体,事件,那种对象。
窗口句柄不同,它们的生命周期由用户决定。或程序中的显式 DestroyWindow() 调用。您不想在枚举窗口时调用 DestroyWindow()。
GDI 句柄不同,它们通常具有专用的发布功能。CreatePen vs DeleteObject,GetDC vs ReleaseDC,CreateDC vs DeleteDC等。如有疑问,请始终咨询相应的创建函数,看看它需要如何再次释放。SDK 文档从不跳过这一点。否则,这会被遗漏记录,EnumWindows 文档没有说您需要释放句柄,所以您不需要。
所以不行。
于 2013-10-27T16:49:38.137 回答
0
我会说不。那是为了摧毁你不再需要的东西。你没有打电话CreateWindow
。
于 2013-10-27T16:37:39.207 回答