Eine Dynamic Link Library (DLL) ist eine Sammlung von Routinen (kleinen Programmen), die von Anwendungen und anderen DLLs aufgerufen werden können. Wie Einheiten enthalten sie Code oder Ressourcen, die von mehreren Anwendungen gemeinsam genutzt werden können.
Das Konzept von DLLs ist der Kern des Windows-Architekturentwurfs, und Windows ist größtenteils einfach eine Sammlung von DLLs.
Mit Delphi können Sie Ihre eigenen DLLs schreiben und verwenden sowie Funktionen aufrufen, unabhängig davon, ob diese mit anderen Systemen oder Entwicklern wie Visual Basic oder C / C entwickelt wurden++.
In den folgenden Zeilen wird gezeigt, wie Sie mit Delphi eine einfache DLL erstellen.
Für den Anfang starten Sie Delphi und navigieren Sie zu Datei> Neu> DLL um eine neue DLL-Vorlage zu erstellen. Wählen Sie den Standardtext aus und ersetzen Sie ihn durch diesen:
Bibliothek TestLibrary;
Verwendet SysUtils, Klassen, Dialoge;
Verfahren DllMessage; Export;Start
ShowMessage ('Hallo Welt aus einer Delphi-DLL');
Ende;
Exporte DllMessage;
anfangen.
Wenn Sie sich die Projektdatei einer Delphi-Anwendung ansehen, werden Sie feststellen, dass sie mit dem reservierten Wort beginnt Programm. DLLs beginnen dagegen immer mit Bibliothek und dann a Verwendet Klausel für alle Einheiten. In diesem Beispiel wird die DllMessage Es folgt eine Prozedur, die nichts anderes tut, als eine einfache Meldung anzuzeigen.
Am Ende des Quellcodes steht ein Exporte Anweisung, die die tatsächlich aus der DLL exportierten Routinen so auflistet, dass sie von einer anderen Anwendung aufgerufen werden können. Dies bedeutet, dass Sie beispielsweise fünf Prozeduren in einer DLL haben können und nur zwei von ihnen (aufgeführt in der DLL) Exporte Abschnitt) kann von einem externen Programm aufgerufen werden (die restlichen drei sind "Subprozeduren").
Um diese DLL nutzen zu können, müssen wir sie durch Drücken von kompilieren Strg + F9. Dies sollte eine aufgerufene DLL erstellen SimpleMessageDLL.DLL in Ihrem Projektordner.
Schauen wir uns zum Schluss an, wie die DllMessage-Prozedur von einer statisch geladenen DLL aufgerufen wird.
Um eine in einer DLL enthaltene Prozedur zu importieren, können Sie das Schlüsselwort verwenden extern in der Verfahrenserklärung. Beispiel: Angesichts der oben gezeigten DllMessage-Prozedur sieht die Deklaration in der aufrufenden Anwendung folgendermaßen aus:
Verfahren DllMessage; extern "SimpleMessageDLL.dll"
Der eigentliche Aufruf einer Prozedur ist nichts anderes als:
DllMessage;
Der gesamte Code für ein Delphi-Formular (Name: Form 1), mit einem TButton (benannt Knopf 1), die die DLLMessage-Funktion aufruft, sieht ungefähr so aus:
Einheit Einheit 1;
Schnittstelle
Verwendet
Windows, Nachrichten, SysUtils, Varianten, Klassen,
Grafiken, Steuerelemente, Formulare, Dialoge, StdCtrls;
Art
TForm1 = Klasse (TForm)
Button1: TButton;
Verfahren Button1Click (Absender: TObject);PrivatPrivate ErklärungenÖffentlichkeitÖffentliche ErklärungenEnde;
var
Form1: TForm1;
Verfahren DllMessage; extern "SimpleMessageDLL.dll"
Implementierung
$ R * .dfm
Verfahren TForm1.Button1Click (Absender: TObject);Start
DllMessage;
Ende;
Ende.