Added code to look up main program symbols - unix only. PLEASE FIX FOR MSW.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Karsten Ballüder
1999-06-29 17:04:57 +00:00
parent bf6c2b3505
commit 0868079c33
2 changed files with 17 additions and 1 deletions

View File

@@ -76,6 +76,9 @@ class wxDllLoader
@return A handle to the loaded DLL. Use success parameter to test if it is valid. @return A handle to the loaded DLL. Use success parameter to test if it is valid.
*/ */
static wxDllType LoadLibrary(const wxString & libname, bool *success); 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 /** This function resolves a symbol in a loaded DLL, such as a
variable or function name. variable or function name.
@param dllHandle Handle of the DLL, as returned by LoadDll(). @param dllHandle Handle of the DLL, as returned by LoadDll().

View 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 wxDllGetSymbol(handle, name) dlsym(handle, name.mb_str())
# define wxDllClose dlclose # define wxDllClose dlclose
#elif defined(HAVE_SHL_LOAD) #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 */ /* static */
wxDllType wxDllType
wxDllLoader::LoadLibrary(const wxString & lib_name, bool *success) wxDllLoader::LoadLibrary(const wxString & lib_name, bool *success)