]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dynload.cpp
fixes for MSWGetCreateWindowFlags signature change
[wxWidgets.git] / src / common / dynload.cpp
index 490ca392d7a473589b90b1656a75b99f3a6e8eef..c88597a1b96a08752191b03a636dd0edf8426fa5 100644 (file)
 #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 )
         {