upCASE ----------------------------------- If it was hard to write, it should be hard to read!- Do. Or do not. There is no try!
3. Re: What's mean by "WXDLLEXPORT"??
#4091
Posted by: 2004-05-10 14:16:54
In wx/defs.h, you can get the following codes.
// WXDLLEXPORT maps to export declaration when building the DLL, to import // declaration if using it or to nothing at all if we don't use wxWin DLL #ifdef WXMAKINGDLL #define WXDLLEXPORT WXEXPORT #define WXDLLEXPORT_DATA(type) WXEXPORT type #define WXDLLEXPORT_CTORFN #elif defined(WXUSINGDLL) #define WXDLLEXPORT WXIMPORT #define WXDLLEXPORT_DATA(type) WXIMPORT type #define WXDLLEXPORT_CTORFN #else // not making nor using DLL #define WXDLLEXPORT #define WXDLLEXPORT_DATA(type) type #define WXDLLEXPORT_CTORFN #endif
and you know WXDLLEXPORT = WXEXPORT or = WXIMPORT or = NULL
then In the same file, you can get the following codes.
#if defined(__WXMSW__) // __declspec works in BC++ 5 and later, Watcom C++ 11.0 and later as well // as VC++ and gcc #if defined(__VISUALC__) || defined(__BORLANDC__) || defined(__GNUC__) || defined(__WATCOMC__) || defined(__DIGITALMARS__) #define WXEXPORT __declspec(dllexport) #define WXIMPORT __declspec(dllimport) #else // compiler doesn't support __declspec() #define WXEXPORT #define WXIMPORT #endif #elif defined(__WXPM__) #if defined (__WATCOMC__) #define WXEXPORT __declspec(dllexport) // __declspec(dllimport) prepends __imp to imported symbols. We do NOT // want that! #define WXIMPORT #elif (!(defined(__VISAGECPP__) && (__IBMCPP__ < 400 || __IBMC__ < 400 ))) #define WXEXPORT _Export #define WXIMPORT _Export #endif #elif defined(__WXMAC__) #ifdef __MWERKS__ #define WXEXPORT __declspec(export) #define WXIMPORT __declspec(import) #endif #endif
so WXDLLEXPORT is __declspec(export) usually, sometimes it's __declspec(import) and sometimes it's null.