Jak vytvořit a používat DLL v Delphi

Knihovna Dynamic Link Library (DLL) je kolekce rutin (malé programy), které lze vyvolat aplikací a dalších DLL. Stejně jako jednotky obsahují kód nebo zdroje, které mohou být sdíleny mezi více aplikace.

Koncept DLL je jádrem architektonického návrhu Windows a z velké části je Windows jednoduše souborem DLL.

S Delphi můžete psát a používat vlastní knihovny DLL a dokonce volat funkce bez ohledu na to, zda byly vyvinuty s jinými systémy nebo vývojáři, jako je Visual Basic, nebo C / C ++.

Vytvoření knihovny dynamických odkazů

Následující několik řádků vám ukáže, jak vytvořit jednoduchý DLL pomocí Delphi.

Pro začátek začněte Delphi a přejděte na Soubor> Nový> DLL vytvořit novou šablonu DLL. Vyberte výchozí text a nahraďte jej tímto:

knihovna TestLibrary;

použití SysUtils, Classes, Dialogs;

postup DllMessage; vývozní;začít

 ShowMessage ('Ahoj svět z Delphi DLL');

konec;

export DllMessage;

začátek. 

Pokud se podíváte na soubor projektu jakékoli aplikace Delphi uvidíte, že začíná vyhrazeným slovem program

instagram viewer
. Naproti tomu knihovny DLL vždy začínají knihovna a pak a použití klauzule pro všechny jednotky. V tomto příkladu DllMessage Následuje postup, který neudělá nic jiného než jednoduchou zprávu.

Na konci zdrojového kódu je export příkaz, který uvádí rutiny, které jsou skutečně exportovány z DLL způsobem, který je může volat jiná aplikace. To znamená, že můžete mít, řekněme, pět procedur v DLL a pouze dva z nich (uvedené v export sekce) lze vyvolat z externího programu (zbývající tři jsou „dílčí procedury“).

Aby bylo možné použít tuto DLL, musíme ji zkompilovat stisknutím Ctrl + F9. To by mělo vytvořit DLL s názvem SimpleMessageDLL.DLL ve složce projekty.

Nakonec se podívejme, jak volat proceduru DllMessage ze staticky načtené DLL.

Chcete-li importovat postup obsažený v DLL, můžete použít klíčové slovo externí v prohlášení o postupu. Například při výše uvedeném postupu DllMessage by prohlášení v volající aplikaci vypadalo takto:

postup DllMessage; externí 'SimpleMessageDLL.dll' 

Skutečné volání procedury není nic jiného než:

 DllMessage; 

Celý kód pro formulář Delphi (jméno: Form1), s TButton (pojmenováno Button1), která volá funkci DLLMessage, vypadá takto:

jednotka Lekce 1;

rozhraní


použití

 Windows, Zprávy, SysUtils, Varianty, Třídy,

 Grafika, ovládací prvky, formuláře, dialogy, StdCtrls;


typ

 TForm1 = třída (TForm)

 Button1: TButton;

postup Button1Click (Sender: TObject);soukromé{Soukromá prohlášení}veřejnost{Veřejná prohlášení}konec;

var

 Form1: TForm1;


postup DllMessage; externí 'SimpleMessageDLL.dll'

implementace


{$ R * .dfm}


postup TForm1.Button1Click (Sender: TObject);začít

 DllMessage;

konec;

konec.