Re: [xml] LoadLibrary needs to be LoadLibraryA
- From: Roumen Petrov <bugtrack roumenpetrov info>
- To: xml gnome org
- Subject: Re: [xml] LoadLibrary needs to be LoadLibraryA
- Date: Wed, 20 Feb 2008 22:29:50 +0200
Roland Schwingel wrote:
Hi...
  
When I tried to compile libxml on Windows along with my application that 
    
is built with 'UNICODE' defined (i.e. as a Unicode 
  
application rather than as an "ANSI" application),  I came across a 
    
problem in xmlmodule.c.
  
With UNICODE defined, LoadLibrary is resolved to LoadLibraryW which 
    
expects to get 'const wchar_t*' rather than 'const char*'.
  
To avoid the problem,  we have to use LoadLibraryA explicitly. 
Below is my trivial patch:
    
[...]
I agree that the explicitely stating LoadLibraryA or LoadLibraryW would be 
best.
But IMHO LoadLibraryA would be a bad idea. This would not allow to load 
modules
located in pathes containing unicode characters.
IMHO interpreting the path as utf-8 and then converting it to wchar would 
be better
and then trying LoadLibraryW(). If the path cannot be converted or 
LoadLibraryW()
fails a second attempt can be made using the original argument of the 
xmlModulePlatformOpen
function passed to LoadLibraryA(). For the utf-8 -> wchar thingy there is 
already code
in xmlIO.c doing these things it should be recycled here.
Roland
  
First why libxml is compiled with -DUNICODE  ?
If final application is unicode (in microsoft terminology) what is 
problem to work with library compiled without UNICODE flag to be defined ?
Please could identify all external function by libxml libraries  that 
this definition impact.
Show apply similar modification to them ?
May be proposed patch is enough.
If file system is fatNN can we use LoadLibraryW ?
If file is on network file system how to detect at run time that 
LoadLibraryW will succeed ?
And what about OS like 95x ? Did Microsoft Windows 95x support 
unicode/wchar_t ?
May be on those OS-es function LoadLibraryW exist in kerne32.dll(?) but 
I guess that it is just a stub.
"modules located in pathes containing unicode characters" - I cannot 
understand this.
If LoadLibraryA is called with file name in "short format" (microsoft 
terminology) should expect to succeed ?
Many questions but well designed OS should care for this transparently 
to the user.
Roumen
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]