dllexport, dllimport
Spécifique à Microsoft
Les attributs de classe de stockage d' dllexport et de dllimport sont des extensions spécifiques à microsoft aux langages C et C++.Vous pouvez les utiliser des fonctions, aux données, et aux objets d'exporter et importer à partir d'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 DLL différent.Déclaration fonctionne comme dllexport élimine le besoin de fichier de définition de module (.def), au moins par rapport à la spécification des fonctions exportées.L'attribut d' dllexport remplace le mot clé d' __export .
Si une classe declspec est marqué (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 des modèles de classe sont explicitement instanciés et 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 mutiler de nom.Pour C fonctions ou les fonctions déclarées comme extern « C », cela inclut la décoration spécifique à la plateforme basé sur la convention d'appel.Si vous ne souhaitez pas la décoration de nom, utilisez un fichier .def (mot clé d'EXPORTS ).
Lorsque vous déclarez dllexport ou dllimport, vous devez utiliser syntaxe d'attribut étendu et le mot clé d' __declspec .
Exemple
// Example of the dllimport and dllexport class attributes
__declspec( dllimport ) int i;
__declspec( dllexport ) void func();
Par ailleurs, pour rendre le code plus lisible, vous pouvez 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 :
TERMINEZ le détail de Microsoft