标准 windows open/save 对话框被 WebKit 破坏了
Standard windows open/save dialog is broken by WebKit
我们的团队正在使用 Qt 4.7.4 开发一个复杂的应用程序。我们提供的关键功能之一需要HTML+QWebBrowser渲染的JS内容。
问题是加载某些页面会导致 open/save 对话框损坏:
对话框在交互方面还是"works":可以打开文件过滤组合框,可以输入文件名,但是都画错了。文件列表和目录树完全没有绘制。
我在 Qt 错误跟踪器和 google 上没有发现关于此问题的错误报告。我们认为问题是我们项目的本地问题。我们假设某些 comctl32.dll 内部结构被某人对无效地址的写操作破坏了,但我们不知道如何抓住真正的原因。
另外值得一提的是,这个问题不会出现在 Qt 5.4 和低于 8.0 的 windows 的任何版本上。不幸的是,我们应该仍然在 Qt 4.8 上构建下一个版本(项目很大,升级过程需要大量时间)。
这样的问题如何调试?应该挂钩哪些内存操作 and/or WinAPI 调用?非常感谢任何想法。
工具链是 MSVC 9.0 (VS 2008)
Qt 4.7(也是 4.8)现在已经很旧了,而且满是灰尘。它不支持 Windows > 7 AFAIK。您绝对应该切换到 Qt 5。
您是否在另一台机器上尝试过您的应用程序?
当我在 win 8 机器上工作时,这件事也发生在我身上。几天来我不知道该怎么做,毕竟我已经在 win 7 pc 上尝试过它并且它有效。我以为我的机器有问题,但看起来没有。
嗯,经过大量的调查,我们发现windows崩溃的真正原因是Flash插件DLL的加载。
我们发现调试 window 中有关 DLL 加载的消息与中断对话框的时刻之间存在关联。对话框恰好在加载 Flash 插件后中断。
为了确保这一提议,我们将 Flash DLL (NPSWF64_*.DLL
) 移动到另一个目录,使 WebKit 无法找到插件,并且在应用程序重启对话框得到修复后。
我们的团队正在使用 Qt 4.7.4 开发一个复杂的应用程序。我们提供的关键功能之一需要HTML+QWebBrowser渲染的JS内容。
问题是加载某些页面会导致 open/save 对话框损坏:
对话框在交互方面还是"works":可以打开文件过滤组合框,可以输入文件名,但是都画错了。文件列表和目录树完全没有绘制。
我在 Qt 错误跟踪器和 google 上没有发现关于此问题的错误报告。我们认为问题是我们项目的本地问题。我们假设某些 comctl32.dll 内部结构被某人对无效地址的写操作破坏了,但我们不知道如何抓住真正的原因。 另外值得一提的是,这个问题不会出现在 Qt 5.4 和低于 8.0 的 windows 的任何版本上。不幸的是,我们应该仍然在 Qt 4.8 上构建下一个版本(项目很大,升级过程需要大量时间)。
这样的问题如何调试?应该挂钩哪些内存操作 and/or WinAPI 调用?非常感谢任何想法。
工具链是 MSVC 9.0 (VS 2008)
Qt 4.7(也是 4.8)现在已经很旧了,而且满是灰尘。它不支持 Windows > 7 AFAIK。您绝对应该切换到 Qt 5。
您是否在另一台机器上尝试过您的应用程序? 当我在 win 8 机器上工作时,这件事也发生在我身上。几天来我不知道该怎么做,毕竟我已经在 win 7 pc 上尝试过它并且它有效。我以为我的机器有问题,但看起来没有。
嗯,经过大量的调查,我们发现windows崩溃的真正原因是Flash插件DLL的加载。
我们发现调试 window 中有关 DLL 加载的消息与中断对话框的时刻之间存在关联。对话框恰好在加载 Flash 插件后中断。
为了确保这一提议,我们将 Flash DLL (NPSWF64_*.DLL
) 移动到另一个目录,使 WebKit 无法找到插件,并且在应用程序重启对话框得到修复后。