Partager via


dllexport, dllimport

Section spécifique à Microsoft

Les attributs de classe de stockage dllexport et dllimport sont des extensions spécifiques à Microsoft pour les langages C et C++. Vous pouvez les utiliser pour exporter et importer des fonctions, des données et des objets vers ou depuis une DLL.

__declspec( dllimport ) declarator 
__declspec( dllexport ) declarator

Notes

Ces attributs définissent explicitement l'interface de la DLL à son client, qui peut être un fichier exécutable ou une autre DLL. La déclaration de fonctions comme dllexport élimine le besoin d'avoir un fichier de définition de module (.def), au moins en ce qui concerne la spécification des fonctions exportées. L'attribut dllexport remplace le mot clé __export.

Si une classe est marquée declspec(dllexport), les spécialisations des modèles de classe dans la hiérarchie de classes sont implicitement marquées comme declspec(dllexport). Cela signifie que les modèles de classe sont instanciés explicitement et que les membres de la classe doivent être définis.

dllexport d'une fonction expose la fonction avec son nom décoré. Pour les fonctions C++, cela inclut l'altération des noms. Pour les fonctions C ou les fonctions déclarées comme « C » externe, cela inclut la décoration propre à la plateforme basée sur la convention d'appel. Si vous ne voulez pas de décoration des noms, utilisez un fichier .def (mot clé EXPORTS).

Lorsque vous déclarez dllexport ou dllimport, vous devez utiliser la syntaxe d'attribut étendu et le mot clé __declspec.

Exemple

// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();

Pour rendre votre code plus lisible, vous pouvez aussi utiliser des définitions de macros :

#define DllImport   __declspec( dllimport )
#define DllExport   __declspec( dllexport )

DllExport void func();
DllExport int i = 10;
DllImport int j;
DllExport int n;

Pour plus d'informations, consultez :

FIN de la section spécifique à Microsoft

Voir aussi

Référence

__declspec

Mots clés C++