32 Урока Borland Delphi



              

Урок 14


    32 урока по Delphi

    Урок 14: Использование DLL в Delphi



     
     
     

    Содержание урока 14:
    Понятие DLL
    Создание DLL в Delphi (экспорт)
    Использование DLL в Delphi (импорт)
    DLL, использующие объекты VCL для работы с данными
    Исключительные ситуации в DLL

    При подготовке первой части данного материала использовался 13 выпуск Библиотеки Системного Программиста , Диалог-МИФИ 1994 г. Авторы: А.В.Фролов и Г.В.Фролов

    1. Понятие DLL

    2.  

      Вспомним процесс программирования в DOS. Преобразование исходного текста программы в машинный код включал в себя два процесса - компиляцию и линковку. В процессе линковки, редактор связей, компоновавший отдельные модули программы, помещал в код программы не только объявления функций и процедур, но и их полный код. Вы готовили таким образом одну программу, другую, третью ... И везде код одних и тех же функций помещался в программу полностью (см. рис 1).

      Рис.1 : Вызов функций при использовании статической компоновки

      В многозадачной среде такой подход был бы по меньшей мере безрассудным, так как очевидно, что огромное количество одних и тех же функций, отвечающих за прорисовку элементов пользовательского интерфейса, за доступ к системным ресурсам и т.п. дублировались бы полностью во всех приложениях, что привело бы к быстрому истощению самого дорогого ресурса - оперативной памяти. В качестве решения возникшей проблемы, еще на UNIX-подобных платформах была предложена концепция динамической компоновки (см. рис . 2).

      Рис.2: Вызов функций при использовании динамической компоновки

      Но, чем же отличаются Dynamic Link Library (DLL) от обычных приложений? Для понимания этого требуется уточнить понятия задачи (task), экземпляра (копии) приложения (instance) и модуля (module).

      При запуске нескольких экземпляров одного приложения, Windows загружает в оперативную память только одну копию кода и ресурсов - модуль приложения, создавая несколько отдельных сегментов данных, стека и очереди сообщений (см. рис. 3), каждый набор которых представляет из себя задачу, в понимании Windows. Копия приложения представляет из себя контекст, в котором выполняется модуль приложения.




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