使用LoadIcon函数获取的图标不需要DestroyIcon的理由

本文讲解对于使用Windows API的LoadIcon或LoadImage获取的图标资源,是否应该调用DestroyIcon的条件。梳理了为防止资源泄漏而应遵循的正确规范。

关于是否需要调用 DestroyIcon

只有在以下情况下才需要调用 DestroyIcon:

  • CreateIconFromResourceEx (在未指定 LR_SHARED 标志的情况下调用)
  • CreateIconIndirect
  • CopyIcon

如果是通过上述函数创建的。

  • LoadIcon
  • LoadImage (使用 LR_SHARED 标志时)
  • CopyImage (使用 LR_COPYRETURNORG 标志,并且 hImage 参数为共享图标时)
  • CreateIconFromResource
  • CreateIconFromResourceEx (使用 LR_SHARED 标志时)

在上述情况下创建和加载的图标,不应该调用 DestroyIcon。

参考

comments powered by Disqus