Wenn wir einen Blick auf where it is defined haben wir
#ifdef WXMAKINGDLL_CORE
# define WXDLLIMPEXP_CORE WXEXPORT
# define WXDLLIMPEXP_DATA_CORE(type) WXEXPORT type
# if defined(HAVE_VISIBILITY)
# define WXDLLIMPEXP_INLINE_CORE WXEXPORT
# else
# define WXDLLIMPEXP_INLINE_CORE
# endif
#elif defined(WXUSINGDLL)
# define WXDLLIMPEXP_CORE WXIMPORT
# define WXDLLIMPEXP_DATA_CORE(type) WXIMPORT type
# if defined(HAVE_VISIBILITY)
# define WXDLLIMPEXP_INLINE_CORE WXIMPORT
# else
# define WXDLLIMPEXP_INLINE_CORE
# endif
#else /* not making nor using DLL */
# define WXDLLIMPEXP_CORE
# define WXDLLIMPEXP_DATA_CORE(type) type
# define WXDLLIMPEXP_INLINE_CORE
#endif
Die Kommentare an anderer Stelle in der Datei sehen sind ziemlich erklärend, was passiert ist, aber eine kurze Zusammenfassung ist, dass gibt es drei Fälle Wir machen eine DLL, benutzen eine DLL oder benutzen überhaupt keine. Der letzte Fall ist der einfachste, wenn wir überhaupt keine DLLs verwenden, dann sind sie zu nichts definiert. Wenn wir eine DLL erstellen, markiert sie die Klasse als exportiert, und wenn wir eine DLL verwenden, markiert sie die Klasse als importiert.
wxWidgets verwendet viele Makros wie diese. Sie können möglicherweise mehr wissen, indem Sie überprüfen, wo das Makro definiert ist. –