透過LoadIcon函數取得的圖示不需要DestroyIcon的理由

為您解說對於透過Windows API的LoadIcon或LoadImage取得的圖示資源,是否應該呼叫DestroyIcon的條件。我們整理了防止資源外洩(Resource Leak)的正確規範。

關於呼叫DestroyIcon的必要性

在以下情況需要呼叫 DestroyIcon:

  • CreateIconFromResourceEx (如果在沒有 LR_SHARED 旗標的情況下呼叫)
  • CreateIconIndirect
  • CopyIcon

當由上述函式建立時。

  • LoadIcon
  • LoadImage (如果使用 LR_SHARED 旗標)
  • CopyImage (如果使用 LR_COPYRETURNORG 旗標,且 hImage 參數是共用圖示)
  • CreateIconFromResource
  • CreateIconFromResourceEx (如果使用 LR_SHARED 旗標)

在上述情況下建立和載入的圖示不應呼叫 DestroyIcon。

參考

comments powered by Disqus