https://bugs.winehq.org/show_bug.cgi?id=46281
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Summary|Archicad 22 does not start |Multiple Windows 7+ |at all |apiset-aware applications | |fail due to Wine loader | |lacking support for | |resolving virtual dlls via | |'kernel32.GetModuleHandle' | |(Archicad 22) Component|-unknown |kernel32
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming. The problem is that Wine's loader doesn't implement resolution for Windows 7+ virtual dlls (API sets).
--- snip --- ... 003f:Call KERNEL32.GetModuleHandleA(0023f4f0 "api-ms-win-core-debug-l1-1-0.dll") ret=142c0a2ce 003f:Ret KERNEL32.GetModuleHandleA() retval=00000000 ret=142c0a2ce 003f:Call ntdll.RtlFreeHeap(00010000,00000000,00071850) ret=142ca71d0 003f:Ret ntdll.RtlFreeHeap() retval=00000001 ret=142ca71d0 003f:Call ntdll.RtlFreeHeap(00010000,00000000,00071340) ret=142ca71d0 003f:Ret ntdll.RtlFreeHeap() retval=00000001 ret=142ca71d0 003f:Call KERNEL32.TerminateProcess(ffffffffffffffff,000000ff) ret=142bd9f53 --- snip ---
The requested API set is implemented in 'kernelbase.dll' and on Windows 7+ the dll is always mapped. 'kernel32.GetModuleHandle()' should obviously return a valid module handle here. The requested API set stub dll is purely "virtual" here, it doesn't need to be mapped.
https://www.geoffchappell.com/studies/windows/win32/apisetschema/history/set...
--- quote --- API-MS-Win-Core-Debug-L1-1-0 kernelbase.dll discontinued in 10.0 --- quote ---
http://www.geoffchappell.com/studies/windows/win32/apisetschema/index.htm
$ sha1sum ARCHICAD-22-USA-3006-1.4.exe 981ffe19e9b03b2736dddc335c9dfc8a7cfe0750 ARCHICAD-22-USA-3006-1.4.exe
$ du -sh ARCHICAD-22-USA-3006-1.4.exe 1.9G ARCHICAD-22-USA-3006-1.4.exe
$ wine --version wine-4.5-227-g6552b7144e
Regards