X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/23213f1811f2743efc9360d0b4b3a90a98d2b7e5..f138704e73645d58c647213bd8fbed0cb2c889fb:/src/common/dynload.cpp diff --git a/src/common/dynload.cpp b/src/common/dynload.cpp index 2255145493..91cb64d3eb 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; @@ -242,7 +252,7 @@ void *wxDynamicLibrary::GetSymbol(const wxString &name, bool *success) const symbol = NSAddressOfSymbol( NSLookupAndBindSymbol( name.c_str() ) ); #elif defined(__WINDOWS__) - symbol = ::GetProcAddress( m_handle, name.mb_str() ); + symbol = (void*) ::GetProcAddress( m_handle, name.mb_str() ); #else #error "runtime shared lib support not implemented"