Our team is developing a complex application using Qt 4.7.4. One of the key functions we provide requires HTML+JS content rendered by QWebBrowser.
The problem is that loading of some pages leads to the broken open/save dialogs:
The dialog still "works" in terms of interaction: the file filter combobox can be opened, file name can be entered, but all of this is drawn wrong. File list and directory tree is not drawn at all.
I have found no bugreports about this problem on Qt bug tracker and google. We decided that the problem is local to our project. We suppose that some comctl32.dll internal structures is ruined by someone's write operation to invalid address, but we have no idea how to catch the real cause. Also it is worth to mention that this problem does NOT appear with Qt 5.4 and on any version of windows less that 8.0. Unfortunately, we should build the next release still on Qt 4.8 (the project is huge, upgrade process takes significant amount of time).
How such problem can be debugged? What memory operations and/or WinAPI calls should be hooked? Any ideas is highly appreciated.
The toolchain is MSVC 9.0 (VS 2008)
Qt 4.7 (4.8 too) is pretty old and dusty these days. It does not support Windows > 7 AFAIK. You should definitely switch to Qt 5.
Well, after spending a lot of time for investigations, we have discovered that the real cause of broken windows is loading of Flash plugin DLL.
We have found the correlation between the messages about DLL load in Debug window and the moment of breaking the dialog. The dialog breaks exactly after loading the Flash plugin.
To ensure this proposition, we moved the Flash DLL (NPSWF64_*.DLL
) to another directory to make WebKit not able to find the plugin, and after application restart dialogs became fixed.
Have you tried your application on another machine ? Like this thing also happend to my while i was working on a win 8 machine . For a few days i didn't knew what to , and after all i have tried it on win 7 pc and it worked. I thought something was wrong with my machine but it looks it's not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With