Heim > Backend-Entwicklung > C++ > Wie definiere ich COMPILING_DLL für DLLEXPORT/DLLIMPORT-Makros richtig?

Wie definiere ich COMPILING_DLL für DLLEXPORT/DLLIMPORT-Makros richtig?

DDD
Freigeben: 2024-11-29 11:51:10
Original
809 Leute haben es durchsucht

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

Makro für dllexport/dllimport-Schalter

Das bereitgestellte Code-Snippet definiert das Makro DLLEXPORT, um das dllexport- oder dllimport-Attribut basierend auf dem Wert des COMPILING_DLL-Makros zu Funktionen hinzuzufügen. Es bleibt jedoch die Frage: Wie und wo soll COMPILING_DLL definiert werden?

COMPILING_DLL definieren

Eine Möglichkeit besteht darin, das standardmäßig definierte lokale Makro für das Projekt zu verwenden. Diese Makros finden Sie unter Eigenschaften -> C/C -> Präprozessor -> Präprozessordefinition.

Wenn Ihr Projekt beispielsweise MyDLL heißt, ist das Standardmakro MYDLL_EXPORTS. Sie können dieses Makro wie folgt verwenden:

#ifdef MYDLL_EXPORTS
    #define DLLEXPORT __declspec(dllexport)
#else
    #define DLLEXPORT __declspec(dllimport)
#endif
Nach dem Login kopieren

Beim Kompilieren des DLL-Projekts wird MYDLL_EXPORTS definiert, wodurch DLLEXPORT als „Export“ aktiviert wird. Bei Verwendung der DLL im Client-Code wird MYDLL_EXPORTS nicht definiert, wodurch DLLEXPORT als „Import“ aktiviert wird.

Dieser Ansatz ermöglicht es Ihnen, denselben Header sowohl für das Kompilieren der DLL als auch für deren Verwendung im Client-Code zu verwenden.

Das obige ist der detaillierte Inhalt vonWie definiere ich COMPILING_DLL für DLLEXPORT/DLLIMPORT-Makros richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage