#endif
#include "wx/wxprec.h"
+#if defined(__WINDOWS__)
+#include "wx/msw/private.h"
+#endif
#ifdef __BORLANDC__
#pragma hdrstop
#elif defined(HAVE_SHL_LOAD)
# define wxDllOpen(lib) shl_load(lib.fn_str(), BIND_DEFERRED, 0)
# define wxDllClose shl_unload
-
static inline void *wxDllGetSymbol(shl_t handle, const wxString& name)
{
void *sym;
return (void *)0;
}
#elif defined(__WINDOWS__)
-# include <windows.h>
-
// using LoadLibraryEx under Win32 to avoid name clash with LoadLibrary
# ifdef __WIN32__
# define wxDllOpen(lib) ::LoadLibraryEx(lib, 0, 0)
wxDllType
wxDllLoader::GetProgramHandle(void)
{
-#ifdef __UNIX__
- return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/);
+#if defined( HAVE_DLOPEN )
+ // optain handle for main program
+ return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/);
+#elif defined (HAVE_SHL_LOAD)
+ // shl_findsymbol with NULL handle looks up in main program
+ return 0;
#else
- wxFAIL_MSG(_("This method is not implemented under Windows or OS/2"));
-
- return 0;
+ wxFAIL_MSG( wxT("This method is not implemented under Windows or OS/2"));
+ return 0;
#endif
}
// wxLibraries (only one instance should normally exist)
// ---------------------------------------------------------------------------
-wxLibraries::wxLibraries()
+wxLibraries::wxLibraries():m_loaded(wxKEY_STRING)
{
}
wxString libPath("/lib:/usr/lib"); // system path first
const char *envLibPath = getenv("LD_LIBRARY_PATH");
if ( envLibPath )
- libPath << ':' << envLibPath;
- wxStringTokenizer tokenizer(libPath, _T(':'));
+ libPath << wxT(':') << envLibPath;
+ wxStringTokenizer tokenizer(libPath, wxT(':'));
while ( tokenizer.HasMoreToken() )
{
wxString fullname(tokenizer.NextToken());
- fullname << '/' << libname;
+ fullname << wxT('/') << libname;
if ( wxFileExists(fullname) )
{
libname = fullname;