Packages und DLLs erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Anwendungen, Komponenten und Bibliotheken erstellen - Index

DLLs (Dynamic Link Libraries) sind Module mit compiliertem Code, die in Kombination mit einer ausführbaren Datei eingesetzt werden, um einer Anwendung zusätzliche Funktionalität zu verleihen. Es gibt zwei typische Anwendungsbereiche für DLLs. Erstens: die Verwendung eines Repository mit externen von Drittherstellern entwickelten DLLs (z.B. Microsoft). Zweitens: das Entwickeln eigener DLLs, die Programme und eine andere Anwendung in einer anderen Programmiersprache gemeinsam nutzen sollen. Ein gutes Beispiel für die Verwendung von DLLs von Drittherstellern in RAD Studio ist die Verwendung des Microsoft Windows-Interface durch Delphi.

Sehen Sie sich dazu die installierten Quelldateien für RAD Studio an:

C:\Program Files (x86)\Embarcadero\Studio\19.0/source/Win32/rtl/win/

Suchen Sie in der Datei WinInet.pas Folgendes:

winetdll = 'wininet.dll';

Nach dieser Definition stehen mehrere Referenzen zu Prozeduren in dieser DLL:

function CommitUrlCacheEntry;          external winetdll name 'CommitUrlCacheEntryW';
function CommitUrlCacheEntryA;          external winetdll name 'CommitUrlCacheEntryA';
function CommitUrlCacheEntryW;          external winetdll name 'CommitUrlCacheEntryW';

CommitUrlCacheEntry ist der Name, mit dem RAD Studio die erste Prozedur referenziert. CommitUrlCacheEntryW ist der Name der Prozedur in wininet.dll. RAD Studio nimmt dann Wininet in die uses-Klausel auf und startet mit CommitUrlCacheEntry. Wininet.dll muss sich im aktuellen Verzeichnis oder in dem in den Umgebungsvariablen definierten Systempfad (PATH) befinden.

Das Interface für die CommitUrlCacheEntryW dll können Sie sich auf der folgenden MSDN-Website ansehen:

WinINet Functions (MSDN)

Die zweite Verwendungsmöglichkeit von DLLs stellt die Entwicklung eigener DLLs dar, die in einem Programm außerhalb von RAD Studio eingesetzt werden sollen. Erstellen Sie folgendermaßen ein neues Projekt in der IDE:

Datei > Neu > Weitere > Delphi-Projekte > Dynamische Link-Bibliothek

Datei > Neu > Weitere > C++Builder-Projekte > Dynamische Link-Bibliothek

Compilieren und erzeugen Sie eine DLL mit dem Befehl Start > Parameter, und suchen Sie die auszuführende Datei der Host-Anwendung.

Packages sind spezielle DLLs, die von Delphi-Anwendungen, der IDE oder beiden verwendet werden. Es gibt zwei Arten von Packages: Laufzeit-Packages und Entwurfszeit-Packages. Laufzeit-Packages stellen einem Programm während dessen Ausführung Funktionalität zur Verfügung. Entwurfszeit-Packages erweitern die Funktionalität der IDE.

DLLs und Bibliotheken sollten alle Exceptions behandeln, um zu verhindern, dass in Windows-Dialogfeldern Fehlermeldungen oder Warnhinweise erscheinen.

Die folgenden Compiler-Direktiven können in Bibliotheksprojektdateien verwendet werden:

Compiler-Direktiven für Bibliotheken:

  Compiler-Direktive         Beschreibung
{$LIBPREFIX 'string'} Stellt dem Namen der Ausgabedatei ein angegebenes Präfix voran. Beispielsweise können Sie für ein Entwurfszeit-Package {$LIBPREFIX 'dcl'} angeben oder mit {$LIBPREFIX} das Präfix völlig entfernen.
{$LIBSUFFIX 'string'} Fügt ein angegebenes Suffix vor dem $LIBVERSION-String, wenn vorhanden, und der Erweiterung an den Namen der Ausgabedatei an. Beispielsweise erzeugen Sie mit {$LIBSUFFIX '-mytools'} in Something.dpr den Namen something-mytools.bpl.
{$LIBVERSION 'string'} Fügt dem Ausgabedateinamen eine Versionserweiterung vor der Erweiterung .bpl hinzu. Beispielsweise erzeugen Sie mit {$LIBVERSION '2.1.3'} in Something.dpr den Namen something.2.1.3.bpl.

Weitere Informationen zu Packages finden Sie unter Packages und Komponenten: Übersicht.

Themen

Siehe auch