Урок 70 - Динамические библиотеки DLL

  Приветствую! Сейчас расскажу о библиотеках DLL и о том, как их создавать в Delphi.

  В таких языках как C++ библиотеку DLL создать и подключить довольно сложно. Для создания приходится прибегать к WinAPI, а для подключения - к классам.

В Delphi все куда легче. Создается библиотека DLL буквально двумя кликами мыши. Для этого в меню File -> New -> Other выберите DLL Wizard:



File -> New ->


  Теперь посмотрите на картинку:



Результат


  И пропишите такой код (кстати говоря, мы напишем программу, которая проверяет вымышленный пароль):

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). Надеюсь, что здесь все понятно.



Удачи!
Встретимся в следующем уроке!



    No results found.
Отменить.