]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dynlib.h
blind fix for GCC compilation when #pragmas are honored
[wxWidgets.git] / include / wx / dynlib.h
index 24592059a55165fc9f41021076aae1655d0ddcdc..e163ae209866aebc2e3276135530710103099de7 100644 (file)
@@ -49,6 +49,7 @@
 #elif defined(__DARWIN__)
     typedef void               *wxDllType;
 #elif defined(__WXMAC__)
 #elif defined(__DARWIN__)
     typedef void               *wxDllType;
 #elif defined(__WXMAC__)
+    #include <CodeFragments.h>
     typedef CFragConnectionID   wxDllType;
 #else
     #error "Dynamic Loading classes can't be compiled on this platform, sorry."
     typedef CFragConnectionID   wxDllType;
 #else
     #error "Dynamic Loading classes can't be compiled on this platform, sorry."
@@ -130,7 +131,7 @@ public:
     //       to use it polymorphically.
     ~wxDynamicLibrary() { Unload(); }
 
     //       to use it polymorphically.
     ~wxDynamicLibrary() { Unload(); }
 
-    // return TRUE if the library was loaded successfully
+    // return true if the library was loaded successfully
     bool IsLoaded() const { return m_handle != 0; }
 
     // load the library with the given name (full or not), return true if ok
     bool IsLoaded() const { return m_handle != 0; }
 
     // load the library with the given name (full or not), return true if ok
@@ -150,6 +151,16 @@ public:
     // Return the raw handle from dlopen and friends.
     wxDllType GetLibHandle() const { return m_handle; }
 
     // Return the raw handle from dlopen and friends.
     wxDllType GetLibHandle() const { return m_handle; }
 
+    // check if the given symbol is present in the library, useful to verify if
+    // a loadable module is our plugin, for example, without provoking error
+    // messages from GetSymbol()
+    bool HasSymbol(const wxString& name) const
+    {
+        bool ok;
+        DoGetSymbol(name, &ok);
+        return ok;
+    }
+
     // resolve a symbol in a loaded DLL, such as a variable or function name.
     // 'name' is the (possibly mangled) name of the symbol. (use extern "C" to
     // export unmangled names)
     // resolve a symbol in a loaded DLL, such as a variable or function name.
     // 'name' is the (possibly mangled) name of the symbol. (use extern "C" to
     // export unmangled names)
@@ -169,7 +180,7 @@ public:
     static wxString CanonicalizeName(const wxString& name,
                                      wxDynamicLibraryCategory cat = wxDL_LIBRARY);
 
     static wxString CanonicalizeName(const wxString& name,
                                      wxDynamicLibraryCategory cat = wxDL_LIBRARY);
 
-    // return name of wxWindows plugin (adds compiler and version info
+    // return name of wxWidgets plugin (adds compiler and version info
     // to the filename):
     static wxString
     CanonicalizePluginName(const wxString& name,
     // to the filename):
     static wxString
     CanonicalizePluginName(const wxString& name,
@@ -185,6 +196,10 @@ public:
 #endif
 
 protected:
 #endif
 
 protected:
+    // the real implementation of GetSymbol()
+    void *DoGetSymbol(const wxString& name, bool *success = 0) const;
+
+
     // platform specific shared lib suffix.
     static const wxChar *ms_dllext;
 
     // platform specific shared lib suffix.
     static const wxChar *ms_dllext;
 
@@ -219,11 +234,11 @@ public:
       which case the library is searched for in all standard locations
       (use GetDllExt() to construct the filename)
 
       which case the library is searched for in all standard locations
       (use GetDllExt() to construct the filename)
 
-      if success pointer is not NULL, it will be filled with TRUE if everything
-      went ok and FALSE otherwise
+      if success pointer is not NULL, it will be filled with true if everything
+      went ok and false otherwise
      */
     static wxDllType LoadLibrary(const wxString& name, bool *success = NULL);
      */
     static wxDllType LoadLibrary(const wxString& name, bool *success = NULL);
-    
+
     /*
       This function unloads the shared library previously loaded with
       LoadLibrary
     /*
       This function unloads the shared library previously loaded with
       LoadLibrary