【发布时间】:2009-07-15 17:23:32
【问题描述】:
我们的应用程序正在使用 mshtml。由于 mshtml 中众所周知的问题,该 dll 导致我们的应用程序不正常退出,因为我们没有在用户的机器上安装更新的浏览器。我们只是使用他们已经拥有的东西。
SetUnhandledExceptionFilter() 不会处理此问题,try/catch 也不会阻止对 mshtml 的调用。异常过滤器确实会捕获其他异常。
例外设置为/EHa。
当我远程调试崩溃时,我看到:
未处理的异常 - 访问冲突
在 mshtml 中,但如果我不使用调试器附加到进程,应用程序就会退出。
我们需要做什么来捕获异常?
编辑:
这是 IE6 的旧版本。
【问题讨论】:
-
我不知道 MSHTML 中众所周知的问题 可能是您误用了它吗? (例如,传递错误的参数,不使用封送指针)。请提供对众所周知的问题的参考或尝试给出更具体的描述。
-
我们在我们的应用程序中也注意到了这一点。许多客户尚未安装最新补丁(有些客户从未安装任何补丁)。其他人有插件 - 甚至是本地开发的插件 - 都是错误的。某些年份的 MSHTML 也会放弃渲染一些更大的页面。
-
@Motti 这个问题发生在格式错误的 html 页面上——但这不应该导致 mshtml 和我们的应用程序崩溃。 (此应用托管广告,我们不对内容负责。另请注意,新版本的 mshtml 不会崩溃(我认为 IE6 是我们看到问题的版本)
-
@motti:如果您愿意,请将“well known”替换为“Lots andlots”。试试这个谷歌搜索。 google.com/…