X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c2ff79b17b1f3e8117e23179340cf69a85b5fe61..7dc3cc31af71522b8fc55b7f97bcba7f5ef9eac5:/src/common/dynlib.cpp diff --git a/src/common/dynlib.cpp b/src/common/dynlib.cpp index f0ac7a1516..1ab0a358f8 100644 --- a/src/common/dynlib.cpp +++ b/src/common/dynlib.cpp @@ -22,6 +22,9 @@ #endif #include "wx/wxprec.h" +#if defined(__WINDOWS__) +#include "wx/msw/private.h" +#endif #ifdef __BORLANDC__ #pragma hdrstop @@ -45,7 +48,6 @@ #elif defined(HAVE_SHL_LOAD) # define wxDllOpen(lib) shl_load(lib.fn_str(), BIND_DEFERRED, 0) # define wxDllClose shl_unload - static inline void *wxDllGetSymbol(shl_t handle, const wxString& name) { void *sym; @@ -55,8 +57,6 @@ return (void *)0; } #elif defined(__WINDOWS__) -# include - // using LoadLibraryEx under Win32 to avoid name clash with LoadLibrary # ifdef __WIN32__ # define wxDllOpen(lib) ::LoadLibraryEx(lib, 0, 0) @@ -183,12 +183,15 @@ void *wxLibrary::GetSymbol(const wxString& symbname) wxDllType wxDllLoader::GetProgramHandle(void) { -#ifdef __UNIX__ - return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/); +#if defined( HAVE_DLOPEN ) + // optain handle for main program + return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/); +#elif defined (HAVE_SHL_LOAD) + // shl_findsymbol with NULL handle looks up in main program + return 0; #else - wxFAIL_MSG(_("This method is not implemented under Windows or OS/2")); - - return 0; + wxFAIL_MSG( wxT("This method is not implemented under Windows or OS/2")); + return 0; #endif } @@ -273,7 +276,7 @@ wxDllLoader::GetSymbol(wxDllType dllHandle, const wxString &name) // wxLibraries (only one instance should normally exist) // --------------------------------------------------------------------------- -wxLibraries::wxLibraries() +wxLibraries::wxLibraries():m_loaded(wxKEY_STRING) { } @@ -318,13 +321,13 @@ wxLibrary *wxLibraries::LoadLibrary(const wxString& name) wxString libPath("/lib:/usr/lib"); // system path first const char *envLibPath = getenv("LD_LIBRARY_PATH"); if ( envLibPath ) - libPath << ':' << envLibPath; - wxStringTokenizer tokenizer(libPath, _T(':')); + libPath << wxT(':') << envLibPath; + wxStringTokenizer tokenizer(libPath, wxT(':')); while ( tokenizer.HasMoreToken() ) { wxString fullname(tokenizer.NextToken()); - fullname << '/' << libname; + fullname << wxT('/') << libname; if ( wxFileExists(fullname) ) { libname = fullname;