Мой DELPHI – Программирование

Всё для программера

Как внести изменения в код VCL?

Вопрос:
Как внести изменения в код VCL?

Ответ:

Примечание: внесение изменений
в VCL не поддерживается Borland или Borland Developer Support.

-Но если Вы решили сделать это…

Изменеия в код VCL никогда не должны вносится в секцию “interface” модуля -
только в секцию “implimentation”. Наиболее безопасный способ внести изменения
в VCL – создать новый каталог названный “исправленный VCL”. Скопируйте файл
VCL который Вы хотите изменить в этот каталог. Внесите изменения (лучше прокомментировать
их) в этот файл. Затем добавьте путь к Вашему каталогу “исправленный VCL” в
самое начало “library path”. Перезапустите Delphi/C++ Builder и перекомпилируйте
Ваш проект. “library path” можно изменить в меню:

Delphi 1 : Options | Environment | Library
Delphi 2 : Tools | Options | Library
Delphi 3 :  Tools | Environment Options | Library
Delphi 4 :  Tools | Environment Options | Library
C++ Builder : Options | Environment | Library
 

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

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

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

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

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

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

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

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

    Часто, в виде DLL создаются
    отдельные наборы функций, объединенные по тем или иным логическим признакам,
    аналогично тому, как концептуально происходит планирование модулей ( в
    смысле unit ) в Pascal. Отличие заключается в том, что функции из модулей
    Pascal компонуются статически – на этапе линковки, а функции из DLL компонуются
    динамически, то есть в run-time. Прочитать остальную часть записи »