I use the gmodule library to manage plugins with windows mobile with mingw32ce. 
Only the sub file gmodule-win32.c exists for that. 
But this file cause some problems with the functions GetProcAddress and 
LoadLibrary. The confusions results from the call of these functions of the 
wide char type GetProcAddressW and LoadLibraryW at the compile process. But the 
used strings are not wide char strings. 
I had solved this by enforcement of GetProcAddressA, because this function is 
in windows ce available. 
But Loadlibrary is available only as wide char function. Therefore I use the 
#define pragma at every occurrence. 
The attached patch works very well for me. Some lines of ToDo I do not need 
currently. 
Does somebody have another suggestion? Or could and should gmodule-win32.c be 
adapted appropriately?

Regards
Hanro

@@ -42,2 +42,11 @@
 #endif
+
+#ifdef __CEGCC__  /* ToDo: the right statement for glib? */
+ #undef GetProcAddress
+ #define GetProcAddress GetProcAddressA
+#endif
 
@@ -131,3 +145,7 @@
       if (!kernel32)
-       if (!(kernel32 = GetModuleHandle ("kernel32.dll")))
+#ifdef __CEGCC__
+       if (!(kernel32 = GetModuleHandleW (L"kernel32.dll")))  /* ToDo: library 
is to be adapted for win ce */
+#else
+       if (!(kernel32 = GetModuleHandle ("kernel32.dll")))
+#endif
          return NULL;
@@ -175,4 +194,8 @@
     {
-      if (!psapi)
-       if ((psapi = LoadLibrary ("psapi.dll")) == NULL)
+      if (!psapi)
+#ifdef __CEGCC__
+       if ((psapi = LoadLibrary (L"psapi.dll")) == NULL)  /* ToDo: library is 
to be adapted for win ce */
+#else
+       if ((psapi = LoadLibrary ("psapi.dll")) == NULL)
+#endif
          return NULL;
@@ -228,8 +253,11 @@
     {
-      if ((p = GetProcAddress (GetModuleHandle (NULL), symbol_name)) == NULL)
+      if ((p = GetProcAddress (GetModuleHandle (NULL), symbol_name)) == NULL)  
/* ToDo: adaptation for wide char of windows ce required */
        p = find_in_any_module (symbol_name);
     }
-  else
-    p = GetProcAddress (handle, symbol_name);
+  else
+  {
+    p = GetProcAddress (handle, symbol_name);  /* ToDo: adaptation for wide 
char of windows ce required */
+  }
 
-- 
Neu: GMX FreeDSL Komplettanschluss mit DSL 6.000 Flatrate + Telefonanschluss 
für nur 17,95 Euro/mtl.!* 
http://dslspecial.gmx.de/freedsl-surfflat/?ac=OM.AD.PD003K11308T4569a
_______________________________________________
gtk-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to