Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Управление модулем

Администратор этапа выполнения поддерживает следующие подп-

рограммы обслуживания модулей:

Подпрограммы API обслуживания модулей Таблица 17.3

----------------------------T-----------------------------------

¦ Подпрограмма ¦ Описание ¦

+---------------------------+-----------------------------------+

¦ FreeLibrary ¦ Делает недействительным загружен-¦

¦ ¦ ный модуль библиотеки, и освобож-¦

¦ ¦ дает соответствующую память, если¦

¦ ¦ ссылок на модуль больше нет. ¦

+---------------------------+-----------------------------------+

¦ GetModuleFileName ¦ Дает полный маршрут и имя выполня-¦

¦ ¦ емого файла, задающий, откуда заг-¦

¦ ¦ ружен модуль. ¦

+---------------------------+-----------------------------------+

¦ GetModuleHandle ¦ Определяет описатель заданного мо-¦

¦ ¦ дуля. ¦

+---------------------------+-----------------------------------+

¦ GetModuleUsage ¦ Определяет счетчик ссылок на мо-¦

¦ ¦ дуль. ¦

+---------------------------+-----------------------------------+

¦ GetProcAddress ¦ Определяет адрес экспортируемой¦

¦ ¦ библиотечной функции. ¦

+---------------------------+-----------------------------------+

¦ LoadLibrary ¦ Загружает указанный библиотечный¦

¦ ¦ модуль. ¦

L---------------------------+------------------------------------

Некоторые из этих подпрограмм воспринимают в качестве пара-

метра описатель модуля. Описатель модуля самой прикладной прог-

раммы хранится в переменной HInstance, описанной в модуле System.

Управление ресурсами

Администратор этапа выполнения поддерживает следующие подп-

рограммы управления ресурсами:

Функции API управления ресурсами Таблица 17.4

-----------------------T----------------------------------------

¦ Функция ¦ Описание ¦

+----------------------+----------------------------------------+

¦ AccessResource ¦ Открывает заданный выполняемый файл и¦

¦ ¦ перемещает указатель файла на начало¦

¦ ¦ заданного ресурса. ¦

+----------------------+----------------------------------------+

¦ FindResource ¦ Определяет адрес ресурса в заданном¦

¦ ¦ файле ресурса. ¦

+----------------------+----------------------------------------+

¦ FreeResource ¦ Уменьшает счетчик ссылок для загружен-¦

¦ ¦ ного ресурса. Когда значение этого¦

¦ ¦ счетчика становится равным нулю, то ис-¦

¦ ¦ пользуемая ресурсом память освобождает-¦

¦ ¦ ся. ¦

+----------------------+----------------------------------------+

¦ LoadResource ¦ Загружает заданный ресурс в память. ¦

+----------------------+----------------------------------------+

¦ LoadString ¦ Загружает заданную строку ресурса. ¦

+----------------------+----------------------------------------+

¦ LockResource ¦ Блокирует заданный ресурс в памяти и¦

¦ ¦ увеличивает его счетчик ссылок. ¦

+----------------------+----------------------------------------+

¦ SizeOfResource ¦ Возвращает размер (в байтах) заданного¦

¦ ¦ ресурса. ¦

+----------------------+----------------------------------------+

¦ UnlockResource ¦ Разблокирует заданный ресурс и уменьша-¦

¦ ¦ ет на 1 счетчик ссылок на ресурс. ¦

L----------------------+-----------------------------------------

Ресурсы могут компоноваться с прикладной программой с по-

мощью директив компилятора {$R имя_файла}. Указанные файлы должны

быть файлами ресурсов Windows (.RES). Обычно с прикладными прог-

раммами защищенного режима DOS компонуются только строковые ре-

сурсы и ресурсы, определенные пользователем. Другие типы ресурсов

Windows к прикладной программе DOS обычно неприменимы.

Примечание: Ресурсы Turbo Vision не следуют тем же

соглашениям, что ресурсы Windows, и к ним нельзя обращаться

с помощью подпрограмм API.

Некоторые подпрограммы API управления ресурсами требуют ука-

зания описателя экземпляра, которым обычно является указатель эк-

земпляра прикладной программы (который содержится в переменной

HInstance модуля System).

Соседние файлы в предмете Программирование на Pascal