[Wine] Re: Wine unhandled exception running PocketFMS

Rob Turk wipe_this_r.turk at chello.nl
Mon Mar 19 00:52:24 CDT 2007


"Duane Clark" <junkmail at junkmail.com> wrote in message 
news:ajykh.17977$QU1.7822 at newssvr22.news.prodigy.net...
>
> I am not really much of a debugger either, but here is my two cents 
> worth...
>
>>
>
> So the program crashes on an attempt to read from 0x0465bf70, and the 
> relay trace shows that indeed a call was made to StretchDIBits with that 
> value for a BITMAPINFO pointer.
>
> > gdi32.StretchDIBits(00000540,00000000,00000000,000000d0,0000001a,
> > 00000000,00000000,000000d0,0000001a,0465bf70,00af5cf8,00000000,00cc0020)
> > ret=0053eafd
>
> The return value indicates the call was made from within PocketFMS, rather 
> than from somewhere in Wine.
>
> > Module  Address                 Debug info      Name (91 modules)
> > PE      400000-6b8000   Export          pocketfms
>

Thanks for the analysis, Duane.

It turns out that the issue is in Microsoft's MFC code, in a function called 
AfxLoadSysColorBitmap(). This function is part of the CToolbar class 
(bartool.cpp). It does a couple of weird things and seems hard-coded for 
16-color configurations.

The developer for PocketFMS changed the reference to this code so it gets 
called in 16-color mode and now it continues past this point. The next 
hurdle is a problem with file creation, which fails on the following:
0009:Call kernel32.CreateFileA(00b29480 "c:\\Program 
Files\\PocketFMS\\\\bdryhV6.gpsdat",80000000,00000003,0033ec30,00000003,00000080,00000000)
ret=0055679a
0009:Ret  kernel32.CreateFileA() retval=ffffffff ret=0055679a

Looks like the double backslash between the path and the filename make Wine 
barf. I thnk it's OK to do this in XP though, at least that's what I recall 
from previous projects.

Rob




More information about the wine-users mailing list