http://bugs.winehq.org/show_bug.cgi?id=6880
------- Additional Comments From focht@gmx.net 2007-05-05 16:46 ------- Hello,
--- quote --- Sure, why not? Safedisc is one of them (even as old as 1.5). It does not use GetProcAddress (where it does matter). In fact, it does all the import fixups itself (which still doesn't work on Wine ATM). So if you patch GetProcAddress it might confuse it or some other programs that do read export tables directly. --- quote ---
I bet the API exports/imports that safedisc "manually" fix up are not bound to this specific "export does not exist on all platforms" problem domain at all. In fact only flat thunking API has been identified so far to be problematic. I'm not aware that SafeDisc uses same brain damaged check on flat thunking exports. If you supply bugzilla bug id or link to application/game which employs such measures *and* works currently on wine, i'll write a patch to verify thesis.
--- quote --- Who said Wine does that? Wine will brake into debugger aka crash when an app tries to import non-existing function. The best example - old version of mfc42.dll that doesn't have one of the functions lots of new apps need --- quote ---
You misunderstood. I was not referring to "standard" missing import case (due to binary interface changes). I wrote "missing import ... (wrong platform)". Example: take the flat thunking API which is the main problem of this bug. Suppose i write a simple application which statically binds to FT_* API (import address table resolved). The Windows NT4, 2K, XP loader will simply reject it (refuse to load). Wine with winecfg = NT4/2K/XP loads it which is obviously wrong.
Regards