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?
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
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!