Рейтинг блогов

Delphi 6.0: Первая DLL

дата добавления: 16 сентября 2003 / 15:55, просмотров: 3391, комментариев: 1

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

 

Создание DLL

 

Запустите Delphi, выберите меню Файл => Создать => Другие (File => New => Other) и в появившемся окне выберите "Мастер DLL" (DLL Wizard), после чего перед вами появится пустая заготовка библиотеки. Обратите внимание, текст модуля начинается со слова library, а не unit. Теперь давайте добавим новую функцию, которая будет производить простейшие арифметические действия с числами X и Y, назовем ее Arifmetic (см. листинг 1)

 


 

Листинг 1

1:

library Project1;

2:

 

3:

uses

4:

  SysUtils,

5:

  Classes;

6:

 

7:

{$R *.res}

8:

 

9:

function Arifmetic(X, Y, Action: integer): integer;

10:

  begin

11:

 

12:

    if (Action = 0) then begin

13:

      Result := X + Y;

14:

    end

15:

    else if (Action = 1) then begin

16:

      Result := X - Y;

17:

    end

18:

    else if (Action = 2) then begin

19:

      Result := X * Y;

20:

    end

21:

    else if (Action = 3) then begin

22:

      Result := Round(X/Y);

23:

    end

24

    else begin

25:

      Result := X + Y;

26:

    end;

27:

 

28:

  end;

29:

 

30:

exports Arifmetic;

31:

 

32:

begin

33:

end.


 

В 9 строке начинается функция Arifmetic с параметрами X, Y и Action типа Integer, которая возвращает значение типа Integer. Action указывает на тип арифметического действия над числами X и Y, по умолчанию используются сложение.

В 30 строке директива export указывает на то, что функция Arifmetic будет доступна другим приложениям. Функции не указанные в директиве export будут не доступны из других приложений. Если функций несколько, то их разделяют запятыми (например: exports Arifmetic, TwoFunction, OtherFunction;).

 

Вот и все, теперь только осталось скомпилировать проект и вас будет своя рабочая DLL!

 

Использование DLL

 

Создать DLL это только пол дела, теперь нам надо научиться ее использовать. Для этого создайте новый проект (Application) и разместите на форме три текстовых поля, ComboBox и кнопку (см. рис. 1).

 

Рис. 1. Примерный вид формы

Рис. 1. Примерный вид формы

 

Имена контролов можно не изменять.

 

Теперь перейдем к коду. Для начала нам надо подключить необходимые функции из библиотеке к проекту, в нашем случае это функция Arifmetic:

 

function Arifmetic(X, Y, Action: integer): integer;

external 'Project1.dll';

 

Ключевое слово external указывает путь к библиотеке DLL, если DLL находится в одной папке с проектом, то указывается просто имя файла, в противном случае - полный путь.

 

Далее создадим событие, обрабатывающее щелчок по кнопке:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit3.Text := IntToStr(Arifmetic(StrToInt(Edit1.Text), StrToInt(Edit2.Text), ComboBox1.ItemIndex));

end;

 

Вот собственно и все, теперь после нажатия на кнопку в текстовом поле Edit3 будет появляться результат арифметических действий с числами из текстовых полей Edit1 и Edit2.

Файлы (всего: 1)

+ Пример к статье (271.53 Kb)

Комментарии (всего: 1)

Добавить комментарий rss
Автор: Veter @ 14 марта 2008, 23:24   ·   ссылка
DLL не запустилась всплывает сообщение что XPнеподдерживает платформу а ваш пример работает

Добавить комментарий

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