Partager via


Importer dans une application à l’aide de __declspec(dllimport)

Un programme qui utilise des symboles publics définis par une DLL est dit pour les importer. Lorsque vous créez des fichiers d’en-tête pour les applications qui utilisent vos DLL à générer, utilisez-les __declspec(dllimport) sur les déclarations des symboles publics. Le mot clé __declspec(dllimport) fonctionne si vous exportez avec des fichiers .def ou avec le __declspec(dllexport) mot clé.

Pour rendre votre code plus lisible, définissez une macro pour __declspec(dllimport) et utilisez la macro pour déclarer chaque symbole importé :

#define DllImport   __declspec( dllimport )

DllImport int  j;
DllImport void func();

L’utilisation __declspec(dllimport) est facultative sur les déclarations de fonction, mais le compilateur produit du code plus efficace si vous utilisez ce mot clé. Toutefois, vous devez utiliser __declspec(dllimport) pour l’exécutable d’importation pour accéder aux symboles et objets de données publiques de la DLL. Notez que les utilisateurs de votre DLL doivent toujours établir un lien avec une bibliothèque d’importation.

Vous pouvez utiliser le même fichier d’en-tête pour la DLL et l’application cliente. Pour ce faire, utilisez un symbole de préprocesseur spécial qui indique si vous générez la DLL ou si vous générez l’application cliente. Par exemple :

#ifdef _EXPORTING
   #define CLASS_DECLSPEC    __declspec(dllexport)
#else
   #define CLASS_DECLSPEC    __declspec(dllimport)
#endif

class CLASS_DECLSPEC CExampleA : public CObject
{ ... class definition ... };

Que voulez-vous faire ?

Sur quels éléments souhaitez-vous obtenir des informations supplémentaires ?

Voir aussi

Importation dans une application