library MyDll;
uses Windows;
function SomeFunc(I: Integer): Integer; stdcall;
beginif Odd(I) then
Result := 3 * I + 1
else
Result := I div 2;
end;
exports
SomeFunc;
beginend.
И вот модуль импорта, который вы можете включить в любой проект, которому
необходим доступ к функциям DLL:
unit MyDllImport;
interfaceuses Windows;
function SomeFunc(I: Integer): Integer; stdcall;
implementationfunction SomeFunc; external 'mydll.dll';
end.
Пример создания динамической библиотеки (DLL) на языке Pascal с помощью компилятора Delphi.
Код DLL
Код DLL хранится в файле MyDll.pas. Он определяет одиночную функцию SomeFunc, которая принимает целое число как входной параметр и возвращает целое число. Функция использует функцию Odd из единицы Windows для проверки, является ли вводное число нечетным, и если это так, она возвращает три раза входное число плюс один. Если вводное число четное, она возвращает результат деления входного числа на два.
Секция exports указывает, что функция SomeFunc должна экспортироваться из DLL.
Единица импорта
Единица импорта, хранящаяся в файле MyDllImport.pas, позволяет другим проектам использовать функции, экспортируемые из DLL. Единица определяет интерфейс, включая функцию SomeFunc, которая объявляется как экспортированная из DLL.
В разделе реализации единицы external 'mydll.dll' указывает компилятору связать файл mydll.dll, содержащий реализацию функции SomeFunc. Это позволяет другим проектам использовать функцию SomeFunc просто вызывая ее, без необходимости реализовывать ее логику самостоятельно.
Использование
Чтобы использовать эту DLL в проекте Delphi, вам нужно:
Скомпилировать файл MyDll.pas, чтобы создать файл mydll.dll.
Добавить единицу MyDllImport.pas к вашему проекту Delphi.
Вы можете вызывать функцию SomeFunc изнутри проекта, как это:
program MyProject;
uses
MyDllImport;
begin
Result := SomeFunc(5); // вызывает функцию SomeFunc в mydll.dll
end.
Это выполнит логику, определенную в функции SomeFunc в DLL, и вернет результат в ваш проект.
В статье предлагается пример создания простой DLL-библиотеки на языке Delphi и использования ее функций в проектах с помощью модуля импорта.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.