[Bug 3840] missing functions in GDI32.dll

Wine Bugs wine-bugs at winehq.org
Thu May 10 09:06:18 CDT 2007


http://bugs.winehq.org/show_bug.cgi?id=3840





------- Additional Comments From focht at gmx.net  2007-10-05 09:06 -------
Hello,

just took this one as random pick.

The crash reason of the demos (probably written in .flat assembler) is simple:
all imports are by ordinal only.
This imposes problems because wine maintains most .spec files without explicit
ordinals.
If people add new/missing functions/exports without explicit ordinal spec they
get automatically assigned (linear from beginning).
These ordinals might not be the same as in windows.

Following is my analysis with one demo supplied by previous attachment
(all others suffer from same problem):

==============================
2mPasM.exe demo (4k):

Wrong imports by ordinal (wine):

--- snip ---
00401020 33  CharNextExW            USER32   
0040101C 97  DdeCreateStringHandleW USER32   
00401018 269 GetMessageTime         USER32   
00401010 510 SetWindowLongW         USER32   
00401014 655 USER32_655             USER32   

00401000 562 GDI32_562              GDI32    

00401008 183 DefineDosDeviceW       KERNEL32 
--- snip ---

Correct imports by ordinal (used windows xp to dump imports)

--- snip ---
00401020 33  ChangeDisplaySettingsA USER32   
0040101C 97  CreateWindowExA        USER32   
00401018 269 GetDC                  USER32   
00401010 510 PeekMessageA           USER32   
00401014 655 ShowCursor             USER32   

00401000 562 SetPixel               GDI32    

00401008 183 ExitProcess            KERNEL32 
--- snip ---

Yes, this is bad practice, because Micro$oft doesnt guarantee that ordinal
numbers of the exports in Windows system Dlls are to be the same across
different Dll versions (usually do but no 100% guarantee).
I didnt search further, there could be more bug reports which suffer from same.

What's the developers consensus on this?
Either fix to match windows ordinals (.spec/export files could be cross checked
with script against windows ordinals) or mark all bug reports in this category
as invalid (broken apps).

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list