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:
@@ -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().
|
||||||
|
@@ -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)
|
||||||
|
Reference in New Issue
Block a user