X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e62e17d735952238929ad351d195a46270a62edb..2c01d33555e3125057f4575ca7d0d2aba93f421f:/include/wx/dynlib.h diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h index 4eeaffef92..04a10d4fc8 100644 --- a/include/wx/dynlib.h +++ b/include/wx/dynlib.h @@ -12,21 +12,15 @@ #ifndef _WX_DYNLIB_H__ #define _WX_DYNLIB_H__ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -# pragma interface "dynlib.h" -#endif - -#include "wx/setup.h" +#include "wx/defs.h" #if wxUSE_DYNLIB_CLASS #include "wx/string.h" #include "wx/dynarray.h" -// FIXME: can this go in private.h or something too?? -#if defined(__WXPM__) || defined(__EMX__) -#define INCL_DOS -#include +#if defined(__OS2__) || defined(__EMX__) +#include "wx/os2/private.h" #endif #ifdef __WXMSW__ @@ -43,9 +37,9 @@ class WXDLLIMPEXP_BASE wxDynamicLibraryDetailsCreator; // conditional compilation // ---------------------------------------------------------------------------- -// Note: WXPM/EMX has to be tested first, since we want to use +// Note: __OS2__/EMX has to be tested first, since we want to use // native version, even if configure detected presence of DLOPEN. -#if defined(__WXPM__) || defined(__EMX__) || defined(__WINDOWS__) +#if defined(__OS2__) || defined(__EMX__) || defined(__WINDOWS__) typedef HMODULE wxDllType; #elif defined(HAVE_DLOPEN) #include @@ -247,9 +241,33 @@ public: #endif } +#ifdef __WXMSW__ + // this function is useful for loading functions from the standard Windows + // DLLs: such functions have an 'A' (in ANSI build) or 'W' (in Unicode, or + // wide character build) suffix if they take string parameters + static void *RawGetSymbolAorW(wxDllType handle, const wxString& name) + { + return RawGetSymbol + ( + handle, + name + +#if wxUSE_UNICODE + L'W' +#else + 'A' +#endif + ); + } + + void *GetSymbolAorW(const wxString& name) const + { + return RawGetSymbolAorW(m_handle, name); + } +#endif // __WXMSW__ + // return all modules/shared libraries in the address space of this process // - // returns an empty array if not implemented or an error occured + // returns an empty array if not implemented or an error occurred static wxDynamicLibraryDetailsArray ListLoaded(); // return platform-specific name of dynamic library with proper extension @@ -300,6 +318,8 @@ protected: #if WXWIN_COMPATIBILITY_2_2 && wxUSE_DYNAMIC_LOADER +#include "wx/object.h" + /* wxDllLoader is a class providing an interface similar to unix's dlopen(). It is used by wxDynamicLibrary wxLibrary and manages the actual loading of