X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fc0bd1c0541a819d51354a4a86f126dbb8ad08f..912c192f7b15090c6ab160c6400b9fb01118187c:/src/common/dynload.cpp diff --git a/src/common/dynload.cpp b/src/common/dynload.cpp index 490ca392d7..c88597a1b9 100644 --- a/src/common/dynload.cpp +++ b/src/common/dynload.cpp @@ -21,22 +21,23 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #if wxUSE_DYNAMIC_LOADER #ifdef __WINDOWS__ -#include "wx/msw/private.h" + #include "wx/msw/private.h" #endif #ifndef WX_PRECOMP -#include "wx/log.h" -#include "wx/intl.h" + #include "wx/log.h" + #include "wx/intl.h" #endif -#include "wx/dynload.h" +#include "wx/filename.h" // for SplitPath() +#include "wx/dynload.h" // ============================================================================ // implementation @@ -75,8 +76,17 @@ bool wxDynamicLibrary::Load(wxString libname, int flags) { wxASSERT_MSG(m_handle == 0, _T("Library already loaded.")); - if( !(flags & wxDL_VERBATIM) ) - libname += GetDllExt(); + // add the proper extension for the DLL ourselves unless told not to + if ( !(flags & wxDL_VERBATIM) ) + { + // and also check that the libname doesn't already have it + wxString ext; + wxFileName::SplitPath(libname, NULL, NULL, &ext); + if ( ext.empty() ) + { + libname += GetDllExt(); + } + } #if defined(__WXMAC__) && !defined(__UNIX__) FSSpec myFSSpec; @@ -103,7 +113,7 @@ bool wxDynamicLibrary::Load(wxString libname, int flags) #elif defined(__WXPM__) || defined(__EMX__) char err[256] = ""; - DosLoadModule(err, sizeof(err), libname.c_str(), &m_handle) + DosLoadModule(err, sizeof(err), libname.c_str(), &m_handle); #elif defined(HAVE_DLOPEN) @@ -173,7 +183,7 @@ bool wxDynamicLibrary::Load(wxString libname, int flags) if ( m_handle == 0 ) { wxString msg(_("Failed to load shared library '%s'")); -#ifdef HAVE_DLERROR +#if defined(HAVE_DLERROR) && !defined(__EMX__) const wxChar *err = dlerror(); if( err ) wxLogError( msg, err ); @@ -251,7 +261,7 @@ void *wxDynamicLibrary::GetSymbol(const wxString &name, bool *success) const if ( !symbol ) { wxString msg(_("wxDynamicLibrary failed to GetSymbol '%s'")); -#ifdef HAVE_DLERROR +#if defined(HAVE_DLERROR) && !defined(__EMX__) const wxChar *err = dlerror(); if( err ) {