otya128 / winevdm

16-bit Windows (Windows 1.x, 2.x, 3.0, 3.1, etc.) on 64-bit Windows
GNU General Public License v2.0
2.64k stars 150 forks source link

Superbase can't find Kernel32.dll #590

Open m-b-round opened 4 years ago

m-b-round commented 4 years ago

Describe the bug Superbase 2001 (SBPERS30.exe) fails to open bespoke program file failing to find kernel32.exe

Expected behavior Superbase itself will open without any issue, but when running our custom code as a command line argument, it gets so far through the start-up process, then fails with the error "Cannot access kernel32.dll" A search of the \winevdm\ directory shows no copy of this file in any of the downloads.

*Environment (please complete the following information):

Additional context

When run without all the debug options on, screen gives this readout.

version: 1056 1b58:err:thunk:GetWndProc16 366: Invalid Window Handle GetWndProc16(0000) 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 26df 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 27df 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 27df 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 27df 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 27df 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 27df 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0008, DS 1abf, ES 3317 1b58:err:thunk:GetWndProc16 366: Invalid Window Handle GetWndProc16(0000) 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0000, DS 1abf, ES 332f 1b58:err:int21:INT21_Ioctl_Char 2853: int21: unknown/not implemented parameters: int21: AX 4401, BX 0006, CX 0800, DX 0065, SI 0000, DI 0000, DS 1abf, ES 332f

Trace file in dropbox (16MB)

cracyc commented 4 years ago

It's trying to load the native windows kernel32 library. LoadLibraryEx32W calls openfile16 which doesn't check the windows/system32 dir. Note that if the program uses windows 95 only kernel32 exports, it won't work even if this problem is fixed.