X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ed58dbeab64d18a0f869ea8e1610a0a88ad7b22c..94799627ee0ad217b2fc41df5bd5bccf59494e00:/include/wx/dynlib.h diff --git a/include/wx/dynlib.h b/include/wx/dynlib.h index e6b0bc8c14..313180829c 100644 --- a/include/wx/dynlib.h +++ b/include/wx/dynlib.h @@ -33,18 +33,20 @@ # endif // Unix flavour #endif // !Unix or already have some HAVE_xxx defined -#if defined(HAVE_DLOPEN) +// Note: WXPM/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__) +# define INCL_DOS +# include + typedef HMODULE wxDllType; +#elif defined(HAVE_DLOPEN) # include typedef void *wxDllType; #elif defined(HAVE_SHL_LOAD) # include typedef shl_t wxDllType; #elif defined(__WINDOWS__) -# include - typedef HMODULE wxDllType; -#elif defined(__OS2__) -# define INCL_DOS -# include +# include // needed to get HMODULE typedef HMODULE wxDllType; #elif defined(__WXMAC__) typedef CFragConnectionID wxDllType; @@ -61,6 +63,7 @@ // ---------------------------------------------------------------------------- // wxDllLoader // ---------------------------------------------------------------------------- + /** wxDllLoader is a class providing an interface similar to unix's dlopen(). It is used by the wxLibrary framework and manages the actual loading of DLLs and the resolving of symbols in them. @@ -69,30 +72,31 @@ */ class wxDllLoader { - public: - /** This function loads a shared library into memory, with libname - being the basename of the library, without the filename - extension. No initialisation of the library will be done. - @param libname Name of the shared object to load. - @param success Must point to a bool variable which will be set to TRUE or FALSE. - @return A handle to the loaded DLL. Use success parameter to test if it is valid. - */ - static wxDllType LoadLibrary(const wxString & libname, bool *success = NULL); - /** This function unloads the shared library. */ - static void UnloadLibrary(wxDllType dll); - /** This function returns a valid handle for the main program - itself. */ - static wxDllType GetProgramHandle(void); - /** This function resolves a symbol in a loaded DLL, such as a - variable or function name. - @param dllHandle Handle of the DLL, as returned by LoadDll(). - @param name Name of the symbol. - @return A pointer to the symbol. - */ - static void * GetSymbol(wxDllType dllHandle, const wxString &name); - private: - /// forbid construction of objects - wxDllLoader(); +public: + /** This function loads a shared library into memory, with libname + being the basename of the library, without the filename + extension. No initialisation of the library will be done. + @param libname Name of the shared object to load. + @param success Must point to a bool variable which will be set to TRUE or FALSE. + @return A handle to the loaded DLL. Use success parameter to test if it is valid. + */ + static wxDllType LoadLibrary(const wxString & libname, bool *success = NULL); + /** This function unloads the shared library. */ + static void UnloadLibrary(wxDllType dll); + /** This function returns a valid handle for the main program + itself. */ + static wxDllType GetProgramHandle(void); + /** This function resolves a symbol in a loaded DLL, such as a + variable or function name. + @param dllHandle Handle of the DLL, as returned by LoadDll(). + @param name Name of the symbol. + @return A pointer to the symbol. + */ + static void * GetSymbol(wxDllType dllHandle, const wxString &name); + +private: + /// forbid construction of objects + wxDllLoader(); }; // ----------------------------------------------------------------------------