+#include <wx/string.h>
+#include <wx/list.h>
+#include <wx/hash.h>
+
+// this is normally done by configure, but I leave it here for now...
+#if defined(__UNIX__) && !(defined(HAVE_DLOPEN) || defined(HAVE_SHL_LOAD))
+ #if defined(__LINUX__) || defined(__SOLARIS__) || defined(__SUNOS__) || defined(__FREEBSD__)
+ #define HAVE_DLOPEN
+ #elif defined(__HPUX__)
+ #define HAVE_SHL_LOAD
+ #endif // Unix flavour
+#endif // !Unix or already have some HAVE_xxx defined
+
+#if defined(HAVE_DLOPEN)
+ #include <dlfcn.h>
+
+ typedef void *wxDllType;
+#elif defined(HAVE_SHL_LOAD)
+ #include <dl.h>
+
+ typedef shl_t wxDllType;
+#elif defined(__WINDOWS__)
+ #include <windows.h>
+
+ typedef HMODULE wxDllType;
+#elif defined(__WXMAC__)
+ typedef CFragConnectionID wxDllType;
+#else
+ #error "wxLibrary can't be compiled on this platform, sorry."
+#endif // OS
+
+// defined in windows.h
+#ifdef LoadLibrary
+ #undef LoadLibrary
+#endif