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
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.