// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
# pragma implementation "dynlib.h"
#endif
#if defined(__WINDOWS__) || defined(__WXPM__) || defined(__EMX__)
const wxChar *wxDynamicLibrary::ms_dllext = _T(".dll");
+#elif defined(__WXMAC__) && !defined(__DARWIN__)
+ const wxChar *wxDynamicLibrary::ms_dllext = _T("");
#elif defined(__UNIX__)
#if defined(__HPUX__)
const wxChar *wxDynamicLibrary::ms_dllext = _T(".sl");
+ #elif defined(__DARWIN__)
+ const wxChar *wxDynamicLibrary::ms_dllext = _T(".dylib");
#else
const wxChar *wxDynamicLibrary::ms_dllext = _T(".so");
#endif
#elif defined(HAVE_DLOPEN) || defined(__DARWIN__)
#if defined(__VMS) || defined(__DARWIN__)
- m_handle = dlopen(libname.c_str(), 0); // The second parameter is ignored
+ m_handle = dlopen(libname.fn_str(), 0); // The second parameter is ignored
#else // !__VMS && !__DARWIN__
int rtldFlags = 0;
return IsLoaded();
}
-/* static */ void wxDynamicLibrary::Unload(wxDllType handle)
+/* static */
+void wxDynamicLibrary::Unload(wxDllType handle)
{
#if defined(__WXPM__) || defined(__EMX__)
DosFreeModule( handle );
#elif defined(__WXMAC__) && !defined(__DARWIN__)
CloseConnection( (CFragConnectionID*) &handle );
#else
-#error "runtime shared lib support not implemented"
+ #error "runtime shared lib support not implemented"
#endif
}
bool failed = FALSE;
void *symbol = 0;
+ wxUnusedVar(symbol);
#if defined(__WXMAC__) && !defined(__DARWIN__)
Ptr symAddress;
CFragSymbolClass symClass;
Str255 symName;
#if TARGET_CARBON
- c2pstrcpy( (StringPtr) symName, name );
+ c2pstrcpy( (StringPtr) symName, name.fn_str() );
#else
- strcpy( (char *)symName, name );
+ strcpy( (char *)symName, name.fn_str() );
c2pstr( (char *)symName );
#endif
- if( FindSymbol( dllHandle, symName, &symAddress, &symClass ) == noErr )
+ if( FindSymbol( m_handle, symName, &symAddress, &symClass ) == noErr )
symbol = (void *)symAddress;
#elif defined(__WXPM__) || defined(__EMX__)
symbol = 0;
#elif defined(__WINDOWS__)
+#ifdef __WXWINCE__
+ symbol = (void*) ::GetProcAddress( m_handle, name );
+#else
symbol = (void*) ::GetProcAddress( m_handle, name.mb_str() );
+#endif
#else
#error "runtime shared lib support not implemented"
{
wxString nameCanonic;
- // under Unix the library names usualyl start with "lib" prefix, add it
+ // under Unix the library names usually start with "lib" prefix, add it
#ifdef __UNIX__
switch ( cat )
{
#undef wxDLLVER
#undef WXSTRINGIZE
+#ifdef __WINDOWS__
+ // Add compiler identification:
+ #if defined(__GNUG__)
+ suffix << _T("_gcc");
+ #elif defined(__VISUALC__)
+ suffix << _T("_vc");
+ #elif defined(__WATCOMC__)
+ suffix << _T("_wat");
+ #elif defined(__BORLANDC__)
+ suffix << _T("_bcc");
+ #endif
+#endif
+
return CanonicalizeName(name + suffix, wxDL_MODULE);
}
{
#ifdef __UNIX__
wxString format = wxGetInstallPrefix();
+ wxString dir;
format << wxFILE_SEP_PATH
<< wxT("lib") << wxFILE_SEP_PATH
<< wxT("wx") << wxFILE_SEP_PATH
+#if (wxMINOR_VERSION % 2) == 0
<< wxT("%i.%i");
- wxString dir;
dir.Printf(format.c_str(), wxMAJOR_VERSION, wxMINOR_VERSION);
- return dir;
#else
+ << wxT("%i.%i.%i");
+ dir.Printf(format.c_str(),
+ wxMAJOR_VERSION, wxMINOR_VERSION, wxRELEASE_NUMBER);
+#endif
+ return dir;
+
+#else // ! __UNIX__
return wxEmptyString;
#endif
}