共用方式為


尋找和載入資源

使用資源之前,應用程式必須將它載入記憶體中。 FindResourceFindResourceEx 函式會在模組中尋找資源,並傳回二進位資源數據的句柄。 FindResource 依類型和名稱找出資源。 FindResourceEx 依類型、名稱和語言找出資源。 本主題中 FindResource 的相關信息也適用於 FindResourceEx

LoadResource 函式會使用 findResource 傳回的資源句柄, 將資源載入記憶體中。 在應用程式使用 LoadResource載入資源之後,系統只有在所有對其模組的參考都通過 FreeLibrary釋放時,才會卸除相關的記憶體。 需要在特定模組內重複存取相同或許多資源的應用程式,可能會因為重複 LoadLibraryFreeLibrary 呼叫而產生效能損失。 應用程式應該儲存單一模組句柄,直到不再需要資源,然後呼叫 FreeLibrary。 從記憶體卸除模組之後,資源控制碼會變成無效。

應用程式可以使用 FindResourceLoadResource 來尋找和載入任何類型的資源,但這些函式應該只用於下列其中一種情況:

  • 當應用程式無法使用現有的資源特定函式來存取資源時。
  • 當應用程式必須存取資源做為後續函數調用的二進位數據時。

可能的話,應用程式應該改用下列其中一個資源特定的函式,在一次呼叫中尋找和載入資源:

功能 行動 移除資源
格式化訊息 載入並格式化訊息數據表項目。 不需要採取任何動作。
加載加速器 載入加速器表。 DestroyAcceleratorTable
LoadBitmap 載入點圖資源。 刪除物件
LoadCursor 載入游標資源。 DestroyCursor
載入圖標 載入圖示資源。 DestroyIcon
LoadImage 載入圖示、游標或點陣圖。 DestroyIconDestroyCursorDeleteObject
載入選單 載入功能表資源。 DestroyMenu
LoadString 載入字串表項目。 不需要採取任何動作。

 

請注意上表中的釋放函式。 在終止之前,應用程式應該使用適當的函式釋放加速鍵表、點陣圖、游標、圖示和功能表所佔用的記憶體。

一旦模組被 FreeLibrary呼叫卸除之後,透過 FindResourceLoadResource 載入的資源相關聯的記憶體就會被釋放。 系統會自動釋放任何在應用程式終止時仍未載入的資源。