]> git.saurik.com Git - wxWidgets.git/commitdiff
Added code to look up main program symbols - unix only. PLEASE FIX FOR MSW.
authorKarsten Ballüder <ballueder@usa.net>
Tue, 29 Jun 1999 17:04:57 +0000 (17:04 +0000)
committerKarsten Ballüder <ballueder@usa.net>
Tue, 29 Jun 1999 17:04:57 +0000 (17:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/dynlib.h
src/common/dynlib.cpp

index 90cfe6fa80f63d7f4335805cb0fd467384c9d745..860088f690e34730678decf76a66ee2f3d635a2f 100644 (file)
@@ -76,6 +76,9 @@ class wxDllLoader
        @return A handle to the loaded DLL. Use success parameter to test if it is valid.
    */
    static wxDllType LoadLibrary(const wxString & libname, bool *success);
        @return A handle to the loaded DLL. Use success parameter to test if it is valid.
    */
    static wxDllType LoadLibrary(const wxString & libname, bool *success);
+   /** This function returns a valid handle for the main program
+       itself. */
+   static wxDllType GetProgramHandle(void);
    /** This function resolves a symbol in a loaded DLL, such as a
        variable or function name.
        @param dllHandle Handle of the DLL, as returned by LoadDll().
    /** This function resolves a symbol in a loaded DLL, such as a
        variable or function name.
        @param dllHandle Handle of the DLL, as returned by LoadDll().
index d7b654faa192bf9e6b0a94f0da5d1b2d56e603f3..0a161789d88aa40b6cd5936d4357f604a585c641 100644 (file)
@@ -40,7 +40,7 @@
 // ----------------------------------------------------------------------------
 
 #if defined(HAVE_DLOPEN)
 // ----------------------------------------------------------------------------
 
 #if defined(HAVE_DLOPEN)
-#   define wxDllOpen(lib)                dlopen(lib.fn_str(), RTLD_LAZY)
+#   define wxDllOpen(lib)                dlopen(lib.fn_str(), RTLD_NOW/*RTLD_LAZY*/)
 #   define wxDllGetSymbol(handle, name)  dlsym(handle, name.mb_str())
 #   define wxDllClose                    dlclose
 #elif defined(HAVE_SHL_LOAD)
 #   define wxDllGetSymbol(handle, name)  dlsym(handle, name.mb_str())
 #   define wxDllClose                    dlclose
 #elif defined(HAVE_SHL_LOAD)
@@ -172,6 +172,19 @@ void *wxLibrary::GetSymbol(const wxString& symbname)
 // wxDllLoader
 // ---------------------------------------------------------------------------
 
 // wxDllLoader
 // ---------------------------------------------------------------------------
 
+/* static */
+wxDllType
+wxDllLoader::GetProgramHandle(void)
+{
+#ifdef __WXGTK__
+   return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/);
+#else
+#pragma warning "Not implemented, please fix!"
+   return 0;
+#endif   
+}
+
+
 /* static */
 wxDllType
 wxDllLoader::LoadLibrary(const wxString & lib_name, bool *success)
 /* static */
 wxDllType
 wxDllLoader::LoadLibrary(const wxString & lib_name, bool *success)