2

A user reports that one of our applications doesn't work under WINE. It runs until he proceeds past a certain form, and then freezes. WINE gives the following output:

~/.wine/drive_c/HeroLab$ wine HeroLab.exe
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:HTTPREQ_QueryOption Semi-STUB INTERNET_OPTION_SECURITY_FLAGS: 0
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_SECURITY_FLAGS; STUB
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT 30000
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (30000): STUB
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0
fixme:bitmap:CreateBitmapIndirect planes = 0

Can anyone explain these messages to me? I assume they are messages from WINE reporting that we are calling functions in ways that WINE doesn't support, but our code doesn't call CreateBitmapIndirect at all.

How can we locate the source of this problem, and fix our app so it runs under WINE?

Thanks.

Colen
  • 13,428
  • 21
  • 78
  • 107
  • 5
    You'd probably do better to get in touch with the WINE developers directly. They'd likely be very receptive to someone who is interested in making sure their app works in WINE, and would know how to get to the bottom of such an error message. – Tyler McHenry Aug 26 '09 at 19:45
  • Is http://forum.winehq.org/ the only place for that? I looked there, but I figured I'd try here first in the hope that someone could at least explain the error to me. – Colen Aug 26 '09 at 19:45
  • There's also a developer's mailing list, see: http://www.winehq.org/forums . Though I'm not sure if the question would be more appropriate in the users' forum or the developers' list, since it's kind of in-between the two topics. – Tyler McHenry Aug 26 '09 at 19:48

4 Answers4

1

Okay Wine is in a constant state of development, you need to find out a few things;

-Which version of wine are you using 1.1.38 is the latest at the time of writing, chances are you might be using an old version whereby the problem your are encountering has been fixed.
-What application is having problems? Have you searched the Application Database? http://appdb.winehq.org/ You can find the current status of running your application under Wine and any of problems users have been encountering.

wonea
  • 4,783
  • 17
  • 86
  • 139
0

http://source.winehq.org/source/dlls/wininet/internet.c

Read the: InternetSetOptionW body. Most flags are unimplemented. One of way to fix is read Microsoft documentation of this call and find similar, but it is rather impossible.

user170609
  • 11
  • 3
0

Debug your own application under Wine. Send feedback to Wine developers.

For example: WINEDEBUG=+GDI wine ./HeroLab.exe

user170609
  • 11
  • 3
0

Your best bet is to implement a log file where you can write debugging trace statements. Add code to write a line indicating where you are, the value of variables, etc. You might have to do several iterations, add many logging statements, until you narrow down where the problem occurs.

Activate the logging with a switch on the command that launches your app (/D).

'Flush' the log file by closing and re-opening it every time you write to it. You need this because if your app crashes, it will not reach normal termination code where the log files would be closed.

Get the user to send you a copy of the file. Have fun with the autopsy.

Note that Wine is brittle, and will crash due to irregularities that Windows tolerates. Eg. NULL window handles, invalid window classes, etc. This is an opportunity to improve your code.

(I realize this is old and the OP has moved on, bit I hope it will be of assistance to others with similar problems).

Pierre
  • 4,114
  • 2
  • 34
  • 39