Hi! I've made some changes to compile wxIFM as DLL
library. Orginal package (wxIFM-1.0.5.zip) has some
troubles to do that. I include all project as it seems
to be the easiest way.
As far as I remember, these changes are:
* main change is in ifmdefs.h, where I undef
WXDLLEXPORT (to avoid warnings) and define it again as
WXEXPORT:
#ifdef WXMAKINGDLL_IFM
# define WXDLLIMPEXP_IFM WXEXPORT
# undef WXDLLEXPORT
# define WXDLLEXPORT WXEXPORT
#elif defined(WXUSINGDLL)
This is because rather non-intuitive defines in
dllimpexp.h of wxWidgets. All exported list, arrays
(like WX_DEFINE_EXPORTED_ARRAY) and so on.. use
WXDLLEXPORT macro, which is defined as:
#define WXDLLEXPORT WXDLLIMPEXP_CORE
But WXDLLIMPEXP_CORE is defined as WXEXPORT only if
WXMAKINGDLL_CORE is defined (look at lines 115-124 in
dllimpexp.h). Of course it's not the case when
compilling wxIFM when we only define WXMAKINGDLL_IFM.
Hence, my little change corrects it and now all
exported types (from dynarray.h) will use WXEXPORT.
* WX_DECLARE_EXPORTED_LIST and
WX_DEFINE_EXPORTED_ARRAY instead of not EXPORTED
version, in files: definterface.h, dragndrop.h,
ifmdefs.h
* exporting (with WXDLLIMPEXP_IFM) classes:
wxIFMTabConfig, wxIFMCaptionCofing,
wxIFMDefaultPlugin, wxIFMDefaultDockingPlugin,
wxIFMInitDragEvent, wxIFMDragEvent, wxIFMDockEventEx,
wxIFMShowDropTargetsEvent, wxIFMDockTargetButton,
wxIFMDimensions
* hence probably I've just exported all classes "just
in case" :)
* WXDLLIMPEXP_IFM wxIFMComponentDataKeyType
GetNewDataKey(); in manager.h
Konrad Kokosa
kkokosa@nitro.bn.pl
Project with changes I've made