hey everybody,
I'm trying to debug a windows application - the Paradise Poker client program. I keep getting an error when it runs:
-------------- err:win32:PE_fixup_imports No implementation for WININET.dll.102(InternetGetConnectedState) imported from C:\Program Files\ParadisePoker\client.exe, setting to 0xdeadbeef
wine: Unhandled exception, starting debugger... err:seh:start_debugger Couldn't start debugger ("/usr/bin/winedbg 134662856 112") (2) Read the Wine Developers Guide on how to set up winedbg or another debugger --------------
The source in dlls/wininet/internet.c clearly shows a (simple) implementation for InternetGetConnectedState, but Wine isn't importing it for some reason. I've turned on other debug traces, but haven't gotten any other useful information. What are some other ways of attacking the problem? I'm pretty new at Wine development - any tips you have would be greatly appreciated.
thanks in advance, Jason
On Mon, 1 Apr 2002, Jason M Bell wrote:
hey everybody,
I'm trying to debug a windows application - the Paradise Poker client program. I keep getting an error when it runs:
err:win32:PE_fixup_imports No implementation for WININET.dll.102(InternetGetConnectedState) imported from C:\Program Files\ParadisePoker\client.exe, setting to 0xdeadbeef
According to my files WININET.dll.102 is only present on Windows 95 and should be InternetFindNextFileA
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ In theory, theory and practice are the same, but in practice they're different.
According to my files WININET.dll.102 is only present on Windows 95 and should be InternetFindNextFileA
How do I fix this in wine? playing with "wine -winver winXX" doesn't help. Is there some other debugging trace I should turn on?
thanks, Jason
On Mon, 1 Apr 2002, Jason M Bell wrote:
According to my files WININET.dll.102 is only present on Windows 95 and should be InternetFindNextFileA
How do I fix this in wine? playing with "wine -winver winXX" doesn't help. Is there some other debugging trace I should turn on?
Well, this looks quite suspicious:
win95/nt4: ordinals = 1 102 63 000273F9 InternetFindNextFileA
win98/winme/win2000: ordinals = 101 -> 112 then 115+ 102 0001EA2C [NONAME] 231 75 0002EFC7 InternetFindNextFileA
winxp: ordinals = 101 -> 123 102 0001AA53 [NONAME] 241 7B 0003FE3E InternetFindNextFileA
Ok, here is my theory as to what happened. Some Win95 and NT4 applications import this API by ordinal (this was a tradition in Win16 and in the early days of win32). In later revisions of wininet MS changed the numbering for some unknown reason (in XP it seems they added APIs for instance). What they did then, is for the APIs that they know to be imported by ordinal by some applications, they also created entry points that are exported by ordinal only and that match the entry points in the Win95 version of wininet. This strongly hints to windows programmers that they should not import these by ordinal. So we should add the same entries to our version of wininet (see dlls/wininet/wininet.spec).
Here is the list of Win95 functions that are exported by ordinal in WinXP: 101 62 00013D51 InternetErrorDlg 102 63 000273F9 InternetFindNextFileA 103 64 0003508D InternetFindNextFileW 104 65 00027055 InternetGetCertByURL 105 66 000100F9 InternetGetConnectedState 108 69 00027610 InternetGetLastResponseInfoA 109 6A 0004033D InternetGetLastResponseInfoW 110 6B 0002654E InternetGoOnline 111 6C 0002651B InternetHangUp 112 6E 0000E04C InternetLockRequestFile 116 72 0003509A InternetOpenUrlW 117 73 000350A7 InternetOpenW 118 74 0000E219 InternetQueryDataAvailable 120 76 00040330 InternetQueryOptionW 121 77 0000E3C4 InternetReadFile 122 78 0000D1F6 InternetReadFileExA 123 79 00040330 InternetReadFileExW
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ "Lotto: A tax on people who are bad at math." -- unknown "Windows: Microsoft's tax on computer illiterates." -- WE7U
Jason M Bell bellj@MIT.EDU writes:
The source in dlls/wininet/internet.c clearly shows a (simple) implementation for InternetGetConnectedState, but Wine isn't importing it for some reason. I've turned on other debug traces, but haven't gotten any other useful information. What are some other ways of attacking the problem?
I'd suggest a -debugmsg +loaddll to see what version of wininet.dll is getting loaded. I suspect Wine is loading a native one that doesn't have InternetGetConnectedState.