【发布时间】:2016-07-01 13:51:26
【问题描述】:
我有一个关于 Windows 嵌入式浏览器和 COM 的问题。我想要做的是在 HTML 表单中向用户显示一些数据,所以我使用 iwebbrowser2 控件来实现这一点。
在ole32.dll 崩溃后调用iwebbrowser2 Navigate 后,我的应用程序出现了这种奇怪的死锁或挂起。这个 ole32 崩溃随机发生在我的应用程序中。异常发生的地点或时间并不常见。它可能在应用程序执行开始时或稍后在使用应用程序时发生。 o 工作的应用程序有几个正在运行的线程和一些突然产生的 Windows 工作线程。有一个名为 WrapperThreadProc 的特定线程,我不确定它在做什么,但它在可能不再存在的 COM 对象上调用 CoUninitialize,这可能导致 ole32.dll 上的异常(不确定这是否正在发生)。
这是异常发生时调用堆栈的图片
这是在navigate() 之后发生死锁时调用堆栈的图片
有人知道这个有线问题是怎么回事吗?我非常感谢任何小小的帮助。
谢谢
【问题讨论】:
-
截图不可读,无用。始终将调用堆栈作为文本发布,并提供minimal reproducible example。根据您提供的信息,我们只能建议您修复错误。
-
感谢 cmets。下次我提出问题时,我会记住所有建议。话虽如此,我已经找到了解决问题的方法。事实证明,networkitemfactory.dll 中发生了争用情况,Microsoft 为其发布了修补程序。这是support.microsoft.com/en-us/kb/2494427的文章。
标签: c++ mfc ole freeze iwebbrowser2