Создание и использование DLL в Delphi |
![]() |
![]() |
Статьи |
Использование DLL (динамически подключаемая библиотека) широко распространено в программировании Windows. DLL на самом деле часть кода исполняемого файла с расширением DLL. Любая программа может вызывать DLL. ![]() Преимущество DLL заключается в следующем:
Создание DLLВ меню File выберите пункт Синтаксис DLL
Для того, чтобы построить DLL, выберите Project -> Build Имя_проекта. Видимость функций и процедурФункции и процедуры могут быть локальными и экспортируемыми из DLL. ЛокальныеЛокальные функции и процедуры могут быть использованы внутри DLL. Они видны только внутри библиотеки и ни одна программа не может их вызывать извне. ЭкспортируемыеЭкспортируемые функции и процедуры могут быть использованы за пределами DLL. Другие программы могут вызывать такие функции и процедуры. Исходный код выше использует экспортируемую функцию. Имя функции следует за зарезервированным словом Exports. Загрузка DLLВ Delphi есть два вида загрузки DLL:
Статическая загрузкаПри запуске приложения загружается автоматически. Она остается в памяти на протяжении выполнения программы. Очень просто использовать. Просто добавьте слово external после объявления функции или процедуры.
Если DLL не будет найден, программа будет продолжать работать. Динамическая загрузкаDLL загружается в память по мере необходимости. Ее реализация более сложная, потому что Вы сами должны загружать и выгружать ее из памяти. Память используется более экономно, поэтому приложение работает быстрее. Программист сам должен следить, чтобы все работало правильно. Для этого нужно:
Объявление типа, описывающего функцию
Загрузка библиотеки
Получаем указатель на функцию
Вызов функции
Выгрузка библиотеки из памяти
Динамический вызов DLL требует больше работы, но легче управлять ресурсами в памяти. Если Вы должны использовать DLL в пределах программы, тогда предпочтительнее статическая загрузка. Не забывайте использовать блок try…except и try…finally, чтобы избежать ошибок во время выполнения программы. Экспорт строкСозданная DLL с использованием Delphi, может быть использована и в программах, написанных на других языках программирования. По этой причине мы не можем использовать любой тип данных. Типы, которые существуют в Delphi могут отсутствовать в других языках. Желательно использовать собственных типы данных из Linux или Windows. Наша DLL может быть использована другим программистом, который использует другой язык программирования. Можно использовать строки и динамические массивы в DLL, написанной в Delphi, но для этого нужно подключить модуль ShareMem в раздел uses в DLL и программе, которая будет ее использовать. Кроме того, это объявление должно быть первым в разделе uses каждого файла проекта. Типов string, как мы знаем, С, С++ и других языках не существует, поэтому желательно использовать вместо них PChar. Пример DLL
Пример вызова функции из DLL
|
Комментарии
Спасибо! Очень доходчиво!
RSS лента комментариев этой записи