wxWidgets的C++中的窗户
问题描述:
我读这个特殊的代码片段: -wxWidgets的C++中的窗户
class WXDLLIMPEXP_CORE wxCommandEvent : public wxEvent, public wxEventBasicPayloadMixin
这是在event.h头文件中定义的,我不明白“WXDLLIMPEXP_CORE”。
感谢
答
如果我们where it is defined看看我们看到
#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
文件中的其他地方的意见是相当解释为正在发生的事情,而是一个简短的总结是,有三种情况,我们正在制作一个DLL,使用一个DLL或者根本不使用它。最后一种情况是最简单的,如果我们根本没有使用DLL,那么它们被定义为什么都没有。如果我们正在制作一个DLL,那么它会将该类标记为导出,并且如果我们使用的是DLL,那么它将该类标记为导入。
+0
我得到了它的一部分,在这个我认为该类作为要导出(wxCommandEvent),因为WXDLLIMPEXP_CORE不使用任何使用Dll如果一个类的导出或导入,这取决于如果DLL用于创建DLL的 – 2012-04-13 07:20:52
wxWidgets使用了很多像这样的宏。您可以通过检查宏定义的位置来了解更多信息。 – 2012-04-13 06:46:05