Freigeben über


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

Siehe auch

Referenz

__declspec

C++-Schlüsselwörter