dllexport, dllimport
Microsoft-spezifisch
Die Speicherklassenattribute dllexport und dllimport sind Microsoft-spezifische Erweiterungen der Programmiersprachen C und C++. Sie können sie verwenden, um Funktionen, Daten und Objekte in eine DLL zu exportieren oder von einer DLL zu importieren.
__declspec( dllimport ) declarator
__declspec( dllexport ) declarator
Hinweise
Diese Attribute definieren explizit die Schnittstelle der DLL zu dem Client, der die ausführbare Datei oder eine andere DLL sein kann. Das Deklarieren funktioniert, da durch dllexport keine Moduldefinitionsdatei (.def) erforderlich ist, zumindest in Bezug auf die Angabe von exportierten Funktionen. Das dllexport-Attribut ersetzt das __export-Schlüsselwort.
Wenn eine Klasse als "declspec(dllexport)" gekennzeichnet ist, werden alle Spezialisierungen von Klassenvorlagen in der Klassenhierarchie implizit als "declspec (dllexport)" gekennzeichnet. Das bedeutet, dass Klassenvorlagen explizit instanziiert werden und die Member der Klasse definiert werden müssen.
dllexport einer Funktion macht die Funktion mit dem ergänzten Namen verfügbar. Bei C++-Funktionen schließt dies Namenszerlegung mit ein. Bei C-Funktionen oder Funktionen, die als extern "C" deklariert werden, schließt dies plattfomspezifische Ergänzungen, die auf der Aufrufkonvention basieren, mit ein. Wenn Sie keine Namensergänzung möchten, verwenden Sie eine DEF-Datei (EXPORTS-Schlüsselwort).
Wenn Sie dllexport oder dllimport deklarieren, müssen Sie erweiterte Attributsyntax und das __declspec-Schlüsselwort verwenden.
Beispiel
// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();
Um den Code lesbarer zu machen, können Sie alternativ Makrodefinitionen verwenden:
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )
DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;
Weitere Informationen finden Sie unter:
END Microsoft-spezifisch