// System dependent include
// ---------------------------------------------------------------------------
-#ifdef linux
+#ifdef __UNIX__
#include <dlfcn.h>
#endif
+#ifdef __WINDOWS__
+#include <windows.h>
+#endif
+
// ---------------------------------------------------------------------------
// Global variables
// ---------------------------------------------------------------------------
else
delete m_liblist;
+#ifdef __UNIX__
dlclose(m_handle);
+#endif
+#ifdef __WINDOWS__
+ FreeLibrary((HMODULE)m_handle);
+#endif
}
}
void *wxLibrary::GetSymbol(const wxString& symbname)
{
-#ifdef linux
- return dlsym(m_handle, symbname.GetData());
+#ifdef __UNIX__
+ return dlsym(m_handle, WXSTRINGCAST symbname);
+#endif
+#ifdef __WINDOWS__
+ return GetProcAddress(m_handle, WXSTRINGCAST symbname);
#endif
+ return NULL;
}
// ---------------------------------------------------------------------------
if ( (node = m_loaded.Find(name.GetData())) )
return ((wxLibrary *)node->Data());
-#ifdef linux
+#ifdef __UNIX__
lib_name.Prepend("./lib");
lib_name += ".so";
printf("lib_name = %s\n", WXSTRINGCAST lib_name);
- void *handle = dlopen(lib_name.GetData(), RTLD_LAZY);
-
- printf("handle = %x\n", handle);
- lib = new wxLibrary(handle);
+ void *handle = dlopen(WXSTRINGCAST lib_name, RTLD_LAZY);
+ if (!handle)
+ return NULL;
#endif
#ifdef __WINDOWS__
lib_name += ".dll";
+ HMODULE handle = LoadLibrary(lib_name);
+ if (!handle)
+ return NULL;
#endif
+ lib = new wxLibrary((void *)handle);
m_loaded.Append(name.GetData(), lib);
return lib;
wxClassLibrary::~wxClassLibrary(void)
{
- uint i;
+ size_t i;
for (i=0;i<m_list.Count();i++)
delete (m_list[i]);
void wxClassLibrary::UnregisterClass(wxClassInfo *class_info)
{
- uint i = 0;
+ size_t i = 0;
while (i < m_list.Count()) {
if (m_list[i]->class_info == class_info) {
wxArrayClassInfo& objs)
{
wxClassLibInfo *info;
- uint i = 0;
+ size_t i = 0;
while (i < m_list.Count()) {
info = m_list[i];
wxArrayClassLibInfo& infos)
{
wxClassLibInfo *info;
- uint i = 0;
+ size_t i = 0;
while (i < m_list.Count()) {
info = m_list[i];
wxObject *wxClassLibrary::CreateObject(const wxString& path)
{
wxClassLibInfo *info;
- uint i = 0;
+ size_t i = 0;
while (i < m_list.Count()) {
info = m_list[i];