[Mono-list] Re: unicode wrapper

Greg Haerr Greg Haerr" <greg@censoft.com
Sat, 6 Apr 2002 20:32:17 -0700


: > What happens when you link directly?
: 
: Nothing. It does not.
: I tried to do so, but ld just ignores symbols exported from the library.
: With MS link it works by placing unicows.lib before any other libraries in
: list, so symbols from unicows override corresponding symbols from say
: kernel32.


I get it now, you're saying that if mint is linked using MS' link
then by putting unicows.lib first it forces CreateFileW resolution
through that library rather than kernel32.lib.  MS recommends
that /NOD:kernel32.lib /NOD:user32.lib etc be placed on
the link line to turn off default library searches.  But when
ld is used to link mint.exe, then you've got to use your hack
to force the resolution to your unimono.dll, which binds with unicows.lib.
Are you linking unimono.dll with MS link?

Do you think -nostdlib needs to be specified with ld?


: Note that in this case you cannot use dll for linkage, you must use library
: file, because it contains some code that is linked statically, and performs
: delay loading of DLL.

I read about this, the library code loads the unicode layer for 
Win9x and ME systems, and calls the original unicode function
for NT/2k/XP systems.



: Wrapper is not the best solution, since it adds some overhead and wastes
: memory, so if someone will investigate the issue that would be great.

I'll look into this, but I'm stuck with a win98 box here, the winXP
box is in another location.  I suspect that it's a makefile ld link command
line ordering problem...  It would be nice to have an option in mono
to create mint/mono using the MS unicows library so that it could
run on win9x systems.  (the unicows.dll is redistributable)

Regards,

Greg