Een Dynamic Link Library (DLL) is een verzameling routines (kleine programma's) die kunnen worden aangeroepen door applicaties en andere DLL's. Net als eenheden bevatten ze code of bronnen die kunnen worden gedeeld tussen meerdere toepassingen.
Het concept van DLL's is de kern van het architecturale ontwerp van Windows, en voor het grootste deel is Windows gewoon een verzameling DLL's.
Met Delphi kunt u uw eigen DLL's schrijven en gebruiken en zelfs functies aanroepen, ongeacht of deze al dan niet zijn ontwikkeld met andere systemen of ontwikkelaars, zoals Visual Basic of C / C++.
De volgende paar regels laten zien hoe u een eenvoudige DLL kunt maken met Delphi.
Start Delphi voor het begin en ga naar Bestand> Nieuw> DLL om een nieuw DLL-sjabloon te bouwen. Selecteer de standaardtekst en vervang deze door deze:
bibliotheek TestBibliotheek;
toepassingen SysUtils, Classes, Dialogs;
procedure DllMessage; exporteren;beginnen
ShowMessage ('Hallo wereld van een Delphi DLL');
einde;
export DllMessage;
beginend.
Als u naar het projectbestand van een Delphi-toepassing kijkt, ziet u dat het begint met het gereserveerde woord programma. DLL's daarentegen beginnen altijd met bibliotheek en dan een toepassingen clausule voor eventuele eenheden. In dit voorbeeld is de DllMessage procedure volgt, die niets anders doet dan een eenvoudig bericht tonen.
Aan het einde van de broncode staat een export instructie die de routines weergeeft die daadwerkelijk vanuit de DLL worden geëxporteerd, zodat ze door een andere toepassing kunnen worden aangeroepen. Wat dit betekent is dat u bijvoorbeeld vijf procedures in een DLL kunt hebben en er slechts twee (vermeld in de export sectie) kan worden opgeroepen vanuit een extern programma (de resterende drie zijn "subprocedures").
Om deze DLL te gebruiken, moeten we deze compileren door op te drukken Ctrl + F9. Dit zou een DLL genaamd moeten maken SimpleMessageDLL.DLL in uw projectenmap.
Laten we tot slot eens kijken hoe we de DllMessage-procedure kunnen aanroepen vanuit een statisch geladen DLL.
Om een procedure in een DLL-bestand te importeren, kunt u het trefwoord gebruiken extern in de procedureverklaring. Gezien de bovenstaande DllMessage-procedure ziet de verklaring in de aanroepende toepassing er bijvoorbeeld als volgt uit:
procedure DllMessage; extern 'SimpleMessageDLL.dll'
De eigenlijke oproep tot een procedure is niets meer dan:
DllMessage;
De volledige code voor een Delphi-formulier (naam: Formulier 1), met een TButton (genaamd Button1) die de DLLMessage-functie aanroept, ziet er ongeveer zo uit:
eenheid Hoofdstuk 1;
koppel
toepassingen
Windows, berichten, SysUtils, varianten, klassen,
Graphics, besturingselementen, formulieren, dialoogvensters, StdCtrls;
type
TForm1 = class (TForm)
Button1: TButton;
procedure Button1Click (afzender: TObject);privaatPrivé verklaringenopenbaarPublieke verklaringeneinde;
var
Form1: TForm1;
procedure DllMessage; extern 'SimpleMessageDLL.dll'
implementatie
$ R * .dfm
procedure TForm1.Button1Click (Sender: TObject);beginnen
DllMessage;
einde;
einde.