Урок 70 - Динамические библиотеки DLL
Приветствую! Сейчас расскажу о библиотеках DLL и о том, как их создавать в Delphi.
В таких языках как C++ библиотеку DLL создать и подключить довольно сложно. Для создания приходится прибегать к WinAPI, а для подключения - к классам.
В Delphi все куда легче. Создается библиотека DLL буквально двумя кликами мыши. Для этого в меню File -> New -> Other выберите DLL Wizard:
Теперь посмотрите на картинку:
И пропишите такой код (кстати говоря, мы напишем программу, которая проверяет вымышленный пароль):
function checkPassword(password: string): string; begin if password = 'admin' then begin result:= 'correct' end else begin result:= 'incorrect' end; end; exports checkPassword;
Теперь сохраните и скомпилируйте. Вы увидите такую ошибку:
Это вполне нормально. Создайте новый формовый проект и киньте на форму 1 Edit, 1 Label и 1 Button. Сохраните проект в той же папке, куда сохраняли DLL.
Потом скопируйте нижеследующий листинг вместо всего вашего кода формовой программы:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} function checkPassword(password: string): string; external 'dll.dll'; procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:= checkPassword(Edit1.Text); end; end.
Теперь объясняю:
Здесь мы командой EXTERNAL читаем функцию checkPassword из библиотеки 'dll.dll'. Потом смотрим в Label возвращаемое этой функцией значение (correct или incorrect). Надеюсь, что здесь все понятно.
Удачи!
Встретимся в следующем уроке!