]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dynlib.h
don't use a floating point value as a boolean flag; gcc4 (correctly) complains when...
[wxWidgets.git] / include / wx / dynlib.h
index a5273869fde5a90cfe6bcacfb751f13859c238d5..04a10d4fc84eb2cbcf1fea1e4f5b5809647fa133 100644 (file)
 #ifndef _WX_DYNLIB_H__
 #define _WX_DYNLIB_H__
 
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#   pragma interface "dynlib.h"
-#endif
-
 #include "wx/defs.h"
 
 #if wxUSE_DYNLIB_CLASS
@@ -23,7 +19,7 @@
 #include "wx/string.h"
 #include "wx/dynarray.h"
 
-#if defined(__WXPM__) || defined(__EMX__)
+#if defined(__OS2__) || defined(__EMX__)
 #include "wx/os2/private.h"
 #endif
 
@@ -41,9 +37,9 @@ class WXDLLIMPEXP_BASE wxDynamicLibraryDetailsCreator;
 // conditional compilation
 // ----------------------------------------------------------------------------
 
-// Note: WXPM/EMX has to be tested first, since we want to use
+// Note: __OS2__/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__) || defined(__WINDOWS__)
+#if defined(__OS2__) || defined(__EMX__) || defined(__WINDOWS__)
     typedef HMODULE             wxDllType;
 #elif defined(HAVE_DLOPEN)
     #include <dlfcn.h>
@@ -245,6 +241,30 @@ public:
 #endif
     }
 
+#ifdef __WXMSW__
+    // this function is useful for loading functions from the standard Windows
+    // DLLs: such functions have an 'A' (in ANSI build) or 'W' (in Unicode, or
+    // wide character build) suffix if they take string parameters
+    static void *RawGetSymbolAorW(wxDllType handle, const wxString& name)
+    {
+        return RawGetSymbol
+               (
+                handle,
+                name +
+#if wxUSE_UNICODE
+                L'W'
+#else
+                'A'
+#endif
+               );
+    }
+
+    void *GetSymbolAorW(const wxString& name) const
+    {
+        return RawGetSymbolAorW(m_handle, name);
+    }
+#endif // __WXMSW__
+
     // return all modules/shared libraries in the address space of this process
     //
     // returns an empty array if not implemented or an error occurred
@@ -298,6 +318,8 @@ protected:
 
 #if WXWIN_COMPATIBILITY_2_2 && wxUSE_DYNAMIC_LOADER
 
+#include "wx/object.h"
+
 /*
     wxDllLoader is a class providing an interface similar to unix's dlopen().
     It is used by wxDynamicLibrary wxLibrary and manages the actual loading of