Содержание материала

Предлагаю вашему вниманию очередной выпуск рассылки, в котором я продолжаю обсуждать

вопросы разработки и использования DLL в Borland Delphi. Для новых подписчиков сообщаю,

что первую часть статьи они могут посмотреть в архиве рассылки, выпуск номер 13.

Прошу прощения у тех, кто писал мне, но не получил ответа. В ближайшее время постараюсь это исправить.

 

Итак, продолжим.

 

Загрузка DLL

 

Прежде чем начать использование какой-либо процедуры или функции, находящейся в динамической библиотеке,

вам необходимо загрузить DLL в оперативную память. Загрузка библиотеки может быть осуществлена

одним из двух способов: статическая загрузка и динамическая загрузка.

Оба метода имеют как преимущества, так и недостатки.

 

Статическая загрузка означает, что динамическая библиотека загружается автоматически

при запуске на выполнение использующего ее приложения. Для того чтобы использовать такой способ загрузки,

вам необходимо воспользоваться ключевым словом external при описании экспортируемой из

динамической библиотеки функции или процедуры. DLL автоматически загружается при старте программы,

и Вы сможете использовать любые экспортируемые из нее подпрограммы точно так же,

как если бы они были описаны внутри модулей приложения.

Это наиболее легкий способ использования кода, помещенного в DLL .

Недостаток метода заключается в том, что если файл библиотеки, на который

имеется ссылка в приложении, отсутствует, программа откажется загружаться.

 

Смысл динамического метода заключается в том, что вы загружаете библиотеку не при старте приложения,

а в тот момент, когда вам это действительно необходимо. Сами посудите, ведь если функция, описанная

в динамической библиотеке, используется только при 10% запусков программы, то совершенно нет

смысла использовать статический метод загрузки. Выгрузка библиотеки из памяти в данном случае

также осуществляется под вашим контролем. Еще одно преимущества такого способа

загрузки DLL - это уменьшение (по понятным причинам) времени старта вашего приложения.

А какие же у этого способа имеются недостатки? Основной, как мне кажется, - это то, что использование

данного метода является более хлопотным, чем рассмотренная выше статическая загрузка.

Сначала вам необходимо воспользоваться функцией Windows API LoadLibrary .

Для получения указателя на экспортируемой процедуры или функции должна

использоваться функция GetProcAddress. После завершения использования библиотеки DLL

должна быть выгружена с применением FreeLibrary.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить