https://bugs.winehq.org/show_bug.cgi?id=49805
--- Comment #28 from ldhacker@live.com --- (In reply to Fabian Maurer from comment #27)
- Well, the crash happened right after "GetMenuInfo", so my first idea was
to make GetMenuInfo always do nothing and see if it still works (it does).
- Second was experience, pointer truncation is a common problem in 64Bit
compatibility... And it worked in 32Bit. Just a hunch at this point.
- GetMenuInfo returns a structure with details, one of them an application
defined value. So I added a printf statement to output that value.
- Turned out it crash address is almost the same to that value (a few 100
bytes difference). So that's our problem.
- Either the program passed a wrong value (unlikely) or we changed it
accidentally. I looked into the structure that stores it, and it's saved as DWORD (32Bit). That can't work.
- Change the DWORD to DWORD_PTR and see if it helps. It does, so no second
issue here.
Is that good enough? :D
Yes, thank you! Now I have some research to do :)