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