Шаг 65.
Библиотека OWL.
Совместное использование функций различными приложениями

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

    Совместное использование команд разными приложениями с помощью библиотеки динамической компоновки (DLL) является крайне важным для Windows. В самом деле, при отсутствии библиотеки динамической компоновки Windows была бы "неполноценной" системой. Windows состоит из множества DLL. Например, при размещении в DLL большинства функций Windows API, нет необходимости помещать эти функции в каждый исполняемый файл. Вместо этого в память загружаются нужные библиотеки, по мере поступления на них запросов. Если бы в программу нужно было встроить все функции, требуемые Windows, то ЕХЕ-файлы были бы огромные. Кроме того, каждой программе требовалась бы собственная копия этих функций.

    Функции или данные, размещаемые в DLL, могут совместно использоваться любым числом работающих приложений, и все же в памяти должна храниться одна копия DLL. Когда программе DLL требуется первый раз, Windows загружает эту библиотеку - в том случае, если файл DLL имеет расширение DLL; DLL с другим расширением должна загружаться вашей программой. Последующие программы также могут вызывать функции из DLL без загрузки другой копии. Когда закрывается последнее приложение, использующее DLL, Windows выгружает DLL из памяти, освобождая память для других целей.

    Так как функции и данные в DLL-библиотеке могут совместно использоваться в любой работающей в данной системе программе, вы можете рассматривать DLL как расширение функций Windows API, DLL добавляет функции, которые не учли создатели Windows. Точно так же, как и обычные DLL из Windows, ваши DLL могут распределяться между многими пользователями - пользователями, которые затем могут писать программы, используя функции или данные, хранящиеся в DLL-библиотеках.


    Замечание. Когда Windows загружает DLL-библиотеку, используется динамическая компоновка вызываемых функций вашей программы с соответствующими функциями в DLL-библиотеке. Поэтому термин "динамическая компоновка" (dinamic link) входит в термин "библиотека динамической компоновки" (dinamic link library). В отличие от статической компоновки, которая имеет место, когда вы пользуетесь программой-редактором связей Borland C++, динамическое установление связей происходит во время выполнения программы.

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




Предыдущий шаг Содержание Следующий шаг