Использование и создание DLL в Delphi
Введение
В связи с бурным развитием технологий программирования, все больше людей
сталкиваются с проблемой наращивания возможностей своих программ. Данная
статья посвящена именно этому вопросу, а именно - программирование DLL
в Borland Delphi. Кроме того, так как мы затронем вопросы по использованию
библиотек DLL, то попутно коснемся импортирования функций из чужих DLL
(в том числе и системных, т.е. WinAPI).
Области применения DLL
Итак, зачем же нужны библиотеки DLL и где они используются?.. Перечислим
лишь некоторые из областей их применения:
Отдельные библиотеки, содержащие полезные для программистов дополнительные
функции. Например, функции для работы со строками, или же - сложные библиотеки
для преобразования изображений.
Хранилища ресурсов. В DLL можно хранить не только программы и функции,
но и всевозможные ресурсы - иконки, рисунки, строковые массивы, меню,
и т.д.
Библиотеки поддержки. В качестве примера можно привести библиотеки таких
известных пакетов, как: DirectX, ICQAPI (API для ICQ), OpenGL и т.д.
Части программы. Например, в DLL можно хранить окна программы (формы),
и т.п.
Плагины (Plugins). - Вот где настоящий простор для мыслей программиста!
Плагины - дополнения к программе, расширяющие ее возможности. Например,
в этой статье мы рассмотрим теорию создания плагина для собственной программы.
Разделяемый ресурс. DLL (Dynamic Link Library) может быть использована
сразу несколькими программами или процессами (т.н. sharing - разделяемый
ресурс)
Краткое описание функций и приемов для работы с DLL
Итак, какие же приемы и функции необходимо использовать, чтобы работать
с DLL? Разберем два метода импортирования функций из библиотеки:
1 способ. Привязка DLL к программе. Это наиболее простой и легкий метод
для использования функций, импортируемых из DLL. Однако (и на это следует
обратить внимание) этот способ имеет очень весомый недостаток - если библиотека,
которую использует программа, не будет найдена, то программа просто не
запустится, выдавая ошибку и сообщая о том, что ресурс DLL не найден.
А поиск библиотеки будет вестись: в текущем каталоге, в каталоге программы,
в каталоге WINDOWS\SYSTEM, и т.д.
Итак, для начала - общая форма этого приема:
implementation
...
funct |