32 Урока Borland Delphi

         

библиотека также является модулем. Она


Задача 1 Задача 2
Копия 1 приложения Копия 2 приложения
Данные Данные
Стек Стек
Очередь сообщений Очередь сообщений
Модуль приложения
Код
Ресурсы
Рис.3 : Копии приложения и модуль приложения
DLL - библиотека также является модулем. Она находится в памяти в единственном экземпляре и содержит сегмент кода и ресурсы, а также сегмент данных (см. рис. 4).
DLL-библиотека
Код
Ресурсы
Данные
Рис.4 : Структура DLL в памяти
DLL - библиотека, в отличие от приложения не имеет ни стека, ни очереди сообщений. Функции, помещенные в DLL, выполняются в контексте вызвавшего приложения, пользуясь его стеком. Но эти же функции используют сегмент данных, принадлежащий библиотеке, а не копии приложения.
В силу такой организации DLL, экономия памяти достигается за счет того, что все запущенные приложения используют один модуль DLL, не включая те или иные стандартные функции в состав своих модулей.
Часто, в виде DLL создаются отдельные наборы функций, объединенные по тем или иным логическим признакам, аналогично тому, как концептуально происходит планирование модулей ( в смысле unit ) в Pascal. Отличие заключается в том, что функции из модулей Pascal компонуются статически - на этапе линковки, а функции из DLL компонуются динамически, то есть в run-time.
 
 
  • Создание DLL в Delphi (экспорт)
  • Для программирования DLL Delphi предоставляет ряд ключевых слов и правил синтаксиса. Главное - DLL в Delphi такой же проект как и программа.
    Рассмотрим шаблон DLL:
    library MyDll;
    uses
    <используемые модули>;
    <объявления и описания функций>
    exports
    <экспортируемые функции>
    begin
    <инициализационная часть>
    end.
    Имя файла проекта для такого шаблона должно быть MYDLL.DPR.
    !!!! К сожалению, в IDE Delphi автоматически генерируется только проект программы, поэтому Вам придется проект DLL готовить вручную. В Delphi 2.0 это неудобство устранено.
    Как и в программе, в DLL присутствует раздел uses. Инициализационная часть необязательна. В разделе же exports перечисляются функции, доступ к которым должен производится из внешних приложений.

    Содержание  Назад  Вперед







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий