Динамически подключаемые библиотеки (общие сведения)

   
На этом шаге мы перечислим особенности использования DLL.

   
Динамически подключаемые библиотеки - Dynamically Linked Library (DLL) - предоставляют прикладным программам дополнительные можности на этапе выполнения.
Помимо использования стандарта DLL, разработанных фирмами-производителями программного обеспечения, Object Pascal позволяет программистам писать собственные DLL,
которые впоследствии можно использовать наряду со стандартными.

   
Ценность библиотек DLL состоит в том, что они после загрузки в оперативную память могут совместно использоваться несколькими прикладными программами. Кроме того, DLL поддерживают "многоязыковые" проекты:
в программах, написанных на языке Object Pascal, допускается использование DLL, созданных на других языках, а в программах, написанных на других языках, допускается использование DLL, созданных на Object Pascal.

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

   
Особенности DLL заключаются в следующих отличиях:

  • компоновка модулей с главной программой выполняется статически во время компиляции, a DLL - динамически, во время исполнения программы.
    Это позволяет для нескольких одновременно работающих
    программ держать в оперативной памяти только по одной копии процедур и функций, используемых в каждой из них;
  • код и ресурсы DLL, в отличие от модуля, не компонуются с использующей ее программой, а находятся в отдельном выполняемом файле расширением DLL, который должен быть доступным при выполнении программы.
    Процедуры и функции DLL, вызываемые программой, связываются с ней динамически;
  • ограниченность DLL по сравнению с модулями состоит в том, что модули могут экспортировать различные языковые единицы (типы, константы, переменные и так далее), a DLL только
    процедуры и функции. Хотя DLL может содержать переменные, однако модули не смогут импортировать их для использования. Любой доступ к переменным DLL должен осуществляться через процедурный интерфейс;
    при запуске созданного пользователем проекта на компиляцию, DLL, используемые в нем, автоматически не компилируются как модули. DLL требуется компилировать отдельно.

   
На следующем шаге мы рассмотрим процесс создания DLL.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий