#endif
#include "wx/wxprec.h"
+#if defined(__WINDOWS__)
+#include "wx/msw/private.h"
+#endif
#ifdef __BORLANDC__
#pragma hdrstop
// conditional compilation
// ----------------------------------------------------------------------------
-#if defined(HAVE_DLOPEN)
+#if defined(__WXPM__) || defined(__EMX__)
+# define INCL_DOS
+# include <os2.h>
+# define wxDllOpen(error, lib, handle) DosLoadModule(error, sizeof(error), lib, &handle)
+# define wxDllGetSymbol(handle, modaddr) DosQueryProcAddr(handle, 1L, NULL, (PFN*)modaddr)
+# define wxDllClose(handle) DosFreeModule(handle)
+#elif defined(HAVE_DLOPEN)
# define wxDllOpen(lib) dlopen(lib.fn_str(), RTLD_NOW/*RTLD_LAZY*/)
# define wxDllGetSymbol(handle, name) dlsym(handle, name.mb_str())
# define wxDllClose dlclose
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)
# endif // Win32/16
# define wxDllGetSymbol(handle, name) ::GetProcAddress(handle, name)
# define wxDllClose ::FreeLibrary
-
-#elif defined(__OS2__)
-
-# define INCL_DOS
-# include <os2.h>
-# define wxDllOpen(error, lib, handle) DosLoadModule(error, sizeof(error), lib, &handle)
-# define wxDllGetSymbol(handle, modaddr) DosQueryProcAddr(handle, 1L, NULL, (PFN*)modaddr)
-# define wxDllClose(handle) DosFreeModule(handle)
#else
# error "Don't know how to load shared libraries on this platform."
#endif // OS
{
wxString fullname(basename);
-#if defined(__UNIX__)
+#if defined(__WINDOWS__) || defined(__WXPM__) || defined(__EMX__)
+ fullname << ".dll";
+#elif defined(__UNIX__)
# if defined(__HPUX__)
fullname << ".sl";
# else //__HPUX__
fullname << ".so";
# endif //__HPUX__
-#elif defined(__WINDOWS__) || defined(__OS2__)
- fullname << ".dll";
#endif
return fullname;
wxDllType
wxDllLoader::GetProgramHandle(void)
{
-#if defined( HAVE_DLOPEN )
+#if defined( HAVE_DLOPEN ) && !defined(__EMX__)
// 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"));
+ wxFAIL_MSG( wxT("This method is not implemented under Windows or OS/2"));
return 0;
#endif
}
wxASSERT_MSG( 1 , (char*)myErrName ) ;
return NULL ;
}
-#elif defined(__OS2__)
+#elif defined(__WXPM__) || defined(__EMX__)
char zError[256] = "";
wxDllOpen(zError, libname, handle);
#else // !Mac
if ( FindSymbol( dllHandle , symName , &symAddress , &symClass ) == noErr )
symbol = (void *)symAddress ;
-#elif defined( __OS2__ )
+#elif defined( __WXPM__ ) || defined(__EMX__)
wxDllGetSymbol(dllHandle, symbol);
#else
symbol = wxDllGetSymbol(dllHandle, name);
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;