-----Original Message----- From: Alexandre Julliard [mailto:julliard@winehq.com] Sent: Wednesday, July 10, 2002 12:51 PM To: Medland, Bill Cc: Wine devel (E-mail) Subject: Re: Any advice on how to debug this?
"Medland, Bill" Bill.Medland@accpac.com writes:
It looks to me like:
comctl32.dll includes a shared data segment. One of the entries in that segment, presumably during the
DllEntry, is
populated with the address of GetSystemMetrics
A second copy of comctl32 then tries to use that address to call GetSystemMetrics
Unfortunately the second process has user32 mapped
somewhere else and so the
call goes somewhere weird and things fall over.
Any ideas as to what we can do about it?
That's a common problem with Win9x dlls. It cannot be completely fixed because we don't control the layout of our address space; there are some hacks that could be done in the loader to make it less likely to happen, but I'm not convinced it is worth the trouble. Our efforts would probably be better spent making sure the builtin versions of the offending dlls work properly.
-- Alexandre Julliard julliard@winehq.com
Thanks Alexandre. I guess the lesson is to use NT dlls wherever possible.
Bill
On Wed, Jul 10, 2002 at 01:11:59PM -0700, Medland, Bill wrote:
-----Original Message----- From: Alexandre Julliard [mailto:julliard@winehq.com]
That's a common problem with Win9x dlls. It cannot be completely fixed because we don't control the layout of our address space; there are some hacks that could be done in the loader to make it less likely to happen, but I'm not convinced it is worth the trouble. Our efforts would probably be better spent making sure the builtin versions of the offending dlls work properly.
-- Alexandre Julliard julliard@winehq.com
Thanks Alexandre. I guess the lesson is to use NT dlls wherever possible.
No way. Wine still has lots of problems with NT DLLs, since they are... NT DLLs ;) Wine's support for NT API is too damn incomplete, so you'll have more luck with Win9x DLLs in most cases. Or just choose to not use *any* Windows DLLs. Might help.