Поиск и загрузка ресурсов
Перед использованием ресурса, приложение должно загрузить его в память. Функции FindResource и FindResourceEx находят ресурс в модуле и возвращают дескриптор двоичных данных ресурса. FindResource определяет местонахождение ресурса при помощи типа и имени. FindResourceEx определяет местонахождение ресурса при помощи типа, имени и языка. Информация о FindResource в этой главе применяется также и к FindResourceEx.
Функция LoadResource использует дескриптор ресурса, возвращенный FindResource, чтобы загрузить ресурс в память. После того, как приложение загрузит ресурс, используя LoadResource, система автоматически выгружает и перезагружает ресурс, как этого требуют условия использования памяти и исполнение кода приложения. Поэтому, приложению нет необходимости не явно выгружать ресурс, который ему больше не нужен.
Приложение может использовать функции FindResource и LoadResource, чтобы найти и загрузить любой тип ресурса, но эти функции должны использоваться только в том случае, если программа должна получить доступ к двоичным данным ресурса для последующих вызовов функции. Чтобы использовать ресурс немедленно, приложение должно применить одну из ниже перечисленных определяющих ресурс функций, чтобы найти и загрузить ресурсы за один вызов.
Функция | Действие |
---|---|
FormatMessage | Загружает и форматирует запись таблицы сообщений. |
LoadAccelerators | Загружает таблицу клавиш-ускорителей (оперативных клавиш). |
LoadBitmap | Загружает ресурс точечного рисунка. |
LoadCursor | Загружает ресурс курсора. |
LoadIcon | Загружает ресурс значка. |
LoadImage | Загружает ресурс значка, курсора, точечного рисунка или расширенного метафайла. |
LoadMenu | Загружает ресурс меню. |
LoadString | Загружает запись таблицы строк. |
Перед завершением работы, приложение должно освободить память, занятую таблицами клавиш-ускорителей, точечными рисунками, курсорами, значками, и меню, используя одну из функций в следующей ниже таблице.
Ресурс | Функция освобождения |
---|---|
Таблица клавиш-ускорителей | DestroyAcceleratorTable |
Точечный рисунок | DeleteObject |
Курсор | DestroyCursor |
Значок | DestroyIcon |
Меню | DestroyMenu |
Когда приложение заканчивает работу, система автоматически освобождает память, занятую. другими типами ресурсов.