Kuidas Delphis DLL-faile luua ja kasutada

Dünaamiliste linkide kogu (DLL) on rutiinide kogu (väikesed programmid), mida saab kutsuda rakendused ja muud DLL-id. Nagu ühikud, sisaldavad need koodi või ressursse, mida saab jagada mitme vahel rakendused.

DLL-ide kontseptsioon on Windowsi arhitektuurilise kujunduse tuum ja enamasti on Windows lihtsalt DLL-ide kogum.

Delphi abil saate kirjutada ja kasutada oma DLL-e ja isegi helistada, hoolimata sellest, kas need töötati välja koos teiste süsteemide või arendajatega, nt Visual Basicvõi C / C ++.

Dünaamiliste linkide kogu loomine

Mõned järgmised read näitavad, kuidas Delphi abil lihtsat DLL-i luua.

Alustuseks käivitage Delphi ja liikuge saidile Fail> Uus> DLL uue DLL-malli loomiseks. Valige vaiketekst ja asendage see järgmisega:

raamatukogu TestLibrary;

kasutab SysUtils, klassid, dialoogid;

protseduur DllMessage; eksport;alustada

 ShowMessage ('Tere maailm Delphi DLL'ist');

lõpp;

eksport DllMessage;

alguse saanud. 

Kui vaatate projekti fail ükskõik millise Delphi rakenduse korral näete, et see algab reserveeritud sõnaga

instagram viewer
programmi. Seevastu DLL algab alati raamatukogu ja siis a kasutab klausel mis tahes ühikute kohta. Selles näites DllMessage Järgneb protseduur, mis ei tee muud kui näitab lihtsat sõnumit.

Lähtekoodi lõpus on eksport avaldus, mis loetleb rutiinid, mida tegelikult DLL-ist eksporditakse viisil, et neid saaks kutsuda mõni muu rakendus. See tähendab, et DLL-is võib olla näiteks viis protseduuri ja ainult kaks neist (loetletud jaotises eksport sektsiooni) saab helistada välisest programmist (ülejäänud kolm on "alamprotseduurid").

Selle DLL-i kasutamiseks peame selle kompileerima vajutades Ctrl + F9. See peaks looma DLL-i nimega SimpleMessageDLL.DLL oma projektide kausta.

Lõpuks vaatame, kuidas helistada DllMessage protseduurile staatiliselt laaditud DLL-ist.

DLL-is sisalduva protseduuri importimiseks võite kasutada märksõna väline protseduurideklaratsioonis. Näiteks, arvestades ülaltoodud protseduuri DllMessage, näeks väljakutserakenduses olev deklaratsioon järgmist:

protseduur DllMessage; väline 'SimpleMessageDLL.dll' 

Tegelik kutse protseduurile pole midagi muud kui:

 DllMessage; 

Delfi vormi täielik kood (nimi: Vorm1) TButtoniga (nimega Button1), mis kutsub funktsiooni DLLMessage, näeb välja umbes selline:

ühik 1. üksus;

liides


kasutab

 Windows, Sõnumid, SysUtils, Variandid, Klassid,

 Graafika, juhtelemendid, vormid, dialoogid, StdCtrls;


tüüp

 TForm1 = klass (TForm)

 Button1: TBnupp;

protseduur Button1Click (saatja: TObject);privaatne{Eradeklaratsioonid}avalik{Avalikud deklaratsioonid}lõpp;

var

 Vorm 1: TForm1;


protseduur DllMessage; väline 'SimpleMessageDLL.dll'

rakendamine


{$ R * .dfm}


protseduur TForm1.Button1Click (saatja: TObject);alustada

 DllMessage;

lõpp;

lõpp.