共用方式為


尋找和載入資源

使用資源之前,應用程式必須將它載入記憶體中。 FindResource 和 FindResourceEx函式會在模組中尋找資源,並傳回二進位資源資料的控制碼。 FindResource 會依類型和名稱找出資源。 FindResourceEx 會依類型、名稱和語言找出資源。 本主題中的 FindResource 相關資訊也適用于 FindResourceEx

LoadResource函式會使用FindResource傳回的資源控制碼,將資源載入記憶體中。 當應用程式使用 LoadResource載入資源之後,系統只會在透過 FreeLibrary釋出其模組的所有參考時,才會卸載相關聯的記憶體。 需要在特定模組內重複存取相同或許多資源的應用程式,可能會因為重複 LoadLibraryFreeLibrary 呼叫發生記憶體對應而造成效能負面影響。 應用程式應該儲存單一模組控制碼,直到不再需要資源,然後呼叫 FreeLibrary。 從記憶體卸載模組之後,資源控制碼就會變成無效。

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

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

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

函式 動作 移除資源
FormatMessage 載入並格式化消息表專案。 不需採取動作。
LoadAccelerators 載入快速鍵資料表。 DestroyAcceleratorTable
LoadBitmap 載入點陣圖資源。 DeleteObject
LoadCursor 載入資料指標資源。 DestroyCursor
LoadIcon 載入圖示資源。 DestroyIcon
LoadImage 載入圖示、游標或點陣圖。 DestroyIconDestroyCursorDeleteObject
LoadMenu 載入功能表資源。 DestroyMenu
LoadString 載入字串資料表專案。 不需採取動作。

 

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

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