Maison > développement back-end > C++ > Comment définir correctement COMPILING_DLL pour les macros DLLEXPORT/DLLIMPORT ?

Comment définir correctement COMPILING_DLL pour les macros DLLEXPORT/DLLIMPORT ?

DDD
Libérer: 2024-11-29 11:51:10
original
810 Les gens l'ont consulté

How Do I Properly Define COMPILING_DLL for DLLEXPORT/DLLIMPORT Macros?

Macro pour le commutateur dllexport/dllimport

L'extrait de code fourni définit la macro DLLEXPORT pour ajouter l'attribut dllexport ou dllimport aux fonctions en fonction de la valeur de la macro COMPILING_DLL. Cependant, la question demeure : comment et où doit être défini COMPILING_DLL ?

Définition de COMPILING_DLL

Une option consiste à utiliser la macro définie par défaut locale au projet. Ces macros se trouvent dans Propriétés -> C/C -> Préprocesseur -> Définition du préprocesseur.

Par exemple, si votre projet s'appelle MyDLL, la macro par défaut est MYDLL_EXPORTS. Vous pouvez utiliser cette macro comme suit :

#ifdef MYDLL_EXPORTS
    #define DLLEXPORT __declspec(dllexport)
#else
    #define DLLEXPORT __declspec(dllimport)
#endif
Copier après la connexion

Lors de la compilation du projet DLL, MYDLL_EXPORTS sera défini, activant DLLEXPORT comme "export". Lors de l'utilisation de la DLL dans le code client, MYDLL_EXPORTS ne sera pas défini, activant DLLEXPORT comme "importation".

Cette approche vous permet d'utiliser le même en-tête pour à la fois compiler la DLL et l'utiliser dans le code client.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal