TURBO PASCAL

Новости

Программы   

Turbo Pascal 

Игры

Документация   

Странности

FAQ

Ссылки

Форум

Гостевая книга

Рассылка

Благодарности

Об авторе

 

 

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

Процедура FreeLibrary. Заголовок:

Procedure FreeLibrary(Lib: THandle);

Уменьшает на единицу счетчик ссылок библиотеки, связанной с дескриптором Lib.

Функция GetModuleHandle. Заголовок:

Function GetModuleHandle(FileName: PChar): THandle;

Создает и возвращает дескриптор файла, содержащего исполняемую программу или библиотеку. FileName — ASCIIZ— строка с именем файла.

Функция GetModuleFileName. Заголовок:

Function GetModuleFileName(Module: THandle; FileName: PChar;

Size: Integer): Integer;

Возвращает в переменной FileName полное имя файла (с маршрутом поиска), связанного с дескриптором Module. Size — размер переменной FileName. Возвращает мину скопированного в FileName имени, если функция выполнена успешно, или 0, если возникла ошибка.

Функция GetModuleUsaqe. Заголовок:

Function GetModuleUsage(Module: THandle): Integer;

Возвращает счетчик ссылок для модуля, связанного с дескриптором Module. Счетчик ссылок увеличивается на единицу при каждом вызове LoadModule и уменьшается на единицу при вызове FreeModule.

Функция GetModuleAddress. Заголовок:

Function GetModuleAddress(Module: THandle; ProcName: PChar):

TFarProc;

В модуле, связанном с дескриптором Handle, ищет процедуру ProcName и возвращает адрес ее точки входа или NIL, если процедура не найдена. Параметр ProcName может содержать либо ASCIIZ— строку с именем процедуры, либо ее порядковый номер. В последнем случае порядковый

номер помещается в младшее слово ProcName, а старшее должно содержать 0.

Функция LoadLibrary. Заголовок:

Function LoadLibrary(LibFileName: PChar): THandle;

Загружает файл DLL — библиотеки с именем LibFileName и возвращает его дескриптор. Функция ищет файл в следующем порядке:

• в текущем каталоге;

• в каталоге Windows;

• в системном каталоге Windows;

в каталоге, из которого была запущена программа;

• в каталогах, определяемых переменной Path окружения ДОС;

• в сетевых каталогах.

Если значение, возвращаемое функцией, меньше hInstance_Error, оно определяет одну из следующих ошибок:

 

Значение

Смысл

о

Системе не хватает памяти для загрузки или файл поврежден и не читается

2

Файл не найден

3

Не найден маршрут поиска файла

5

Попытка доступа к файлу из динамически связанной задачи или ошибка

 

разделения сетевого файла

6

Библиотека требует отдельных сегментов данных для каждой задачи

8

Не хватает памяти

10

Неверная версия Windows

11

Исполняемый файл испорчен или не соответствует формату исполняемого

 

файла Windows

12

Библиотечный файл создан для другой операционной системы

13

Библиотечный файл создан для MS-DOS 4.0

14

Неизвестный тип исполняемого файла

15

Попытка загрузить файл, рассчитанный на реальный режим работы Windows

 

ранних версий

16

Попытка загрузить второй экземпляр библиотеки, которая загружена не в

 

режиме «только для чтения»

19

Попытка загрузить сжатый исполняемый файл

20

Неправильный файл DLL—библиотеки

21

Библиотека рассчитана на 32 — разрядную среду


При вызове функции она вначале проверяет, была ли уже загружена требуемая библиотека. Каждый вызов функции LoadLibrary наращивает на единицу счетчик ссылок библиотеки, а каждый вызов функции FreeLibrary уменьшает на единицу этот счетчик.

 

Глава 9

Оглавление 

На первую страницу

Rambler's Top100 Rambler's Top100
PROext: Top 1000

(с)Все права защищены

По всем интересующим вопросам прошу писать на электронный адрес

Hosted by uCoz