Eine Dynamic Link Library oder DLL ermöglicht eine Anwendung nur das notwendige Minimum ausführbaren Code in den Speicher zu laden während der Laufzeit. Immer, wenn das Programm eine Funktion in einer DLL aufruft , lädt das Betriebssystem die DLL im Speicher in Übereinstimmung mit den Spezifikationen Programmierers . Solange das laufende Programm bezieht sich nicht auf eine DLL-Funktion , müssen die DLL nicht Raum einnehmen . Das spart Ressourcen und steigert die Laufzeit-Performance . Wenn die Bibliothek waren statisch, würden alle die Bibliothek Code in das Hauptprogramm der ausführbaren Code angehängt werden , und der Riese Programm müsste im Speicher für die gesamte Laufzeit zu bleiben. Der Unix -oder Linux- Version eines Windows- DLL ist ein gemeinsames Objekt -Bibliothek, die mit der Erweiterung SO gebaut wird . Windows, Unix und Linux haben Konventionen auf Funktionen in DLLs oder gemeinsam genutzte Bibliotheken zugreifen . Anleitung
Export Windows DLL Objekte mit Preprocessor Keyword
1
Ihre DLL -Header-Datei , setzen Sie den Suchbegriff " __declspec (dllexport ) " vor dem Prototyp einer Funktion , Klasse, Klasse Mitglied oder Datenvariablen in der DLL. Dieses Schlüsselwort fügt die Funktion Prototyp der DLL Export-Tabelle .
2
Verwenden Ordinalwerte 1 bis N anstelle von Funktion oder Klasse Member-Namen zum Weltraum durch die DLL- Export-Tabelle belegt sparen, wobei N die Anzahl der Objekte oder Funktionen in der DLL .
3
Fügen Sie das Schlüsselwort " __declspec (dllimport ) " vor den entsprechenden Funktions-Prototypen in das aufrufende Programm oder DLL. Das aufrufende Programm importiert die Funktionen , dass die DLL -Exporte .
Export Windows DLL -Funktionen verwenden eine Moduldefinitionsdatei
4
eine Textdatei mit der Endung DEF Erstellen und fügen Sie es . dem Projekt für Ihre DLL in Visual Studio
5
in der "Bibliothek " Erklärung mit den Namen der DLL , nachdem es wie folgt:
BIBLIOTHEK ReportWriter
6
Wahlweise fügen Sie eine kurze einzeilige Beschreibung für die DLL wie folgt:
BESCHREIBUNG Dies ist eine DLL für Berichterstellung Funktionalität in MyProduct
Dies wird empfohlen
. . Seite 7
Fügen Sie einen Eintrag für jede Funktion oder Klasse Mitglied , dass die DLL zu exportieren , mit einem optionalen Kardinalzahl will. Der Kardinal Zahl steht für die Funktion und nimmt Werte von 1 bis N, wobei N die Anzahl der Funktionen, die von der DLL exportiert. Hier ist ein Beispiel :
RPT_init @ 1RPT_design @ @ 2RPT_run 3RPT_print @ 4
Nach Verknüpfung aller Quell-und dieses DEF-Datei , erstellt der Compiler eine Export-Datei mit der Erweiterung EXP und einer Importbibliothekdatei , mit der LIB -Erweiterung. Der Compiler verwendet die EXP-Datei , um die DLL zu erstellen. Die LIB -Datei wird an das aufrufende Programm verbunden und hält Informationen über die Import -Funktionen in der DLL.