Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Простой шаблон для Delphi DLL

Delphi , Файловая система , DLL и PlugIns

Простой шаблон для Delphi DLL

Пример DLL

Без модулей

Во-первых, "скелет" DLL, которую вы хотели, сохраняете как DLLFRAME.DPR:


{---------------------DLLFRAME.DPR--------------------------}
library Dllframe;

uses WinTypes;

function  GetString : string ; export ;
begin

Result := 'Привет из DLL!' ;
end;

exports

GetString;

begin
end.
{-----------------------------------------------------------}

Теперь напишем вызывающую программу и сохраним ее как DLLCALL.DPR:


{---------------------DLLCALL.DPR---------------------------}
program Dllcall;

uses

Dialogs;

{$R *.RES}

function GetString : string ; far ; external 'DLLFRAME' ;

begin

MessageDlg( GetString, mtInformation, [ mbOK ], 0 ) ;
end.
{-----------------------------------------------------------}

С модулями

Код вызывающей программы, сохраните ее как DLLCALL.DPR:


{---------------------DLLCALL.DPR---------------------------}
program Dllcall;

uses

Dialogs;

{$R *.RES}

function GetString : string ; far ; external 'MyDLL' ;
begin
MessageDlg( GetString, mtInformation, [ mbOK ], 0 ) ;
end.
{-----------------------------------------------------------}

"скелет" DLL, которую вы хотели, сохраняете как DLLFRAME.DPR:


{---------------------DLLFRAME.DPR--------------------------}
library Dllframe;

uses DLLUnit;

exports

GetString;

begin
end.
{-----------------------------------------------------------}

Модуль, который мы сохраняем как dllunit.pas:


{---------------------dllunit.pas--------------------------}

unit DLLUnit;
interface

uses WinTypes;

function GetString: string; export;

implementation

function GetString: string;
begin

GetString := 'Привет из DLL!' ;
end ;

begin
end. 
{-----------------------------------------------------------}

Here is the translation of the content into Russian:

DLLFRAME.DPR (основной "скелет" DLL)

библиотека Dllframe;
uses WinTypes;

function GetString: string; export;
begin
  Result := 'Привет из DLL!';
end;

exports
GetString;

begin
end.

Это базовая библиотека Delphi, экспортирующая одиночную функцию GetString. Переменная Result в функции GetString присваивается строковое значение, которое будет возвращаться при вызове из внешнего программы.

DLLCALL.DPR (программа-звонок)

program Dllcall;
uses Dialogs;

{$R *.RES}

function GetString: string; far; external 'DLLFRAME';

begin
  MessageDlg(GetString, mtInformation, [mbOK], 0);
end.

Это базовая программа Delphi, использующая unit Dialogs для отображения сообщения. Функция GetString объявляется как внешняя процедура, что означает, что она вызывается из внешнего DLL (в этом случае, DLLFRAME.DLL). Когда GetString вызывается, она возвращает строковое значение, присвоенное в DLL.

dllunit.pas (модуль, содержащий экспортируемую функцию)

unit DLLUnit;
interface
uses WinTypes;

function GetString: string; export;
implementation

function GetString: string;
begin
  Getstring := 'Привет из DLL!';
end;

begin
end.

Это базовая библиотека Delphi, содержащая функцию GetString, которая экспортируется из DLL.

Альтернативное решение с модулями

Вместо создания отдельного DPR-файла для программы-звонка можно создать новый unit (например, dllcall.pas) и использовать его в основной программе. Этоapproach более модульный и проще в обслуживании.

program DllCall;
uses Dialogs, dllcall;

{$R *.RES}

begin
  MessageDlg(dllcall.GetString, mtInformation, [mbOK], 0);
end.

В этом примере dllcall.pas - новый unit, содержащий код вызова функции GetString. Основная программа просто использует этот unit и вызывает функцию GetString.

Заключение

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

Напомните, что DLL нужно скомпилировать как динамическую связку (DLL) и зарегистрировать ее с помощью реестра Windows или инструментом regsvr32.exe. Затем вы можете вызвать DLL из основной программы с помощью ключевого слова external.

Статья описывает простой шаблон создания динамической библиотеки (DLL) в Delphi, включая примеры кода и шаги по созданию вызывающей программы.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: DLL и PlugIns ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-09 16:41:03/0.0033421516418457/0