【问题标题】:Embed IE6 with MFC使用 MFC 嵌入 IE6
【发布时间】:2010-11-15 22:49:47
【问题描述】:

我希望在 MFC 应用程序中使用“Microsoft Web 浏览器”ActiveX 控件,但我们需要它是 IE6 以支持旧的东西和所有不那么有趣的东西。但是,将在其上部署它的系统可能安装了 IE7 或 IE8。

我不太喜欢 COM/ActiveX,尽管我知道 C++ 和 MFC。在过去的几天里,我一直在阅读和玩弄 DLL 重定向和 SxS DLL,但它们并没有让我走得太远(事实上,我相信 MSDN 提到 SxS 不适用于受系统保护的 DLL 或 OCX文件)。

我找到了 IE 部署工具包生成器,并希望我可以将它与 DLL 重定向结合使用,但到目前为止,运气不佳。如果有人能提供帮助,我将不胜感激。

谢谢!

内森

【问题讨论】:

    标签: c++ internet-explorer mfc activex dll


    【解决方案1】:

    曾经有一个“Multiple IE”安装程序可以破解 Windows XP 上的内容以允许多个版本的 IE 共存。如页面所述,它已经停产了一段时间:

    Multiple IE 不再维护,也没有继续维护的计划!

    该策略显然还导致了随机的 IE 崩溃,仅适用于 Windows XP,并且被 Windows 更新破坏(至少一次)。


    与其试图拼凑一个类似的解决方案(这似乎很脆弱,并且可能会很痛苦地使用最新的安全修复程序进行修补),不如考虑一种完全不同的方法来解决问题可能更容易:

    修复原因:

    • 修复/升级底层遗留代码。您可以获得与其他更新的基于标准的浏览器的兼容性作为一个不错的奖励。 (诚​​然,这有时是不可能的。)

    控制环境:

    • 使用 IE6 设置运行 Windows XP 的虚拟机。使用 VM,您可以确保所需的环境具有稳定、经过测试的配置。有一些部署/集成工具也可能有用(用户不必知道应用程序在完全独立的 Windows XP 实例中运行)。

    发疯,但(稍微)可维护*:

    • 如果您无法修复底层遗留问题,那么它可能也不会发生太大变化。弄清楚如何实际修复它,并“即时”修补它以确保 IE7/IE8 兼容性。 (即编辑脚本/CSS/页面内容/格式/等以在下载后但在浏览器引擎呈现之前解决问题。)

    **(而不是试图让多个版本的 IE 一起工作。)*

    这些只是想法,但希望它们有助于激发一些有用的东西。祝你好运。

    【讨论】:

    • 感谢您的回复。我已经玩过多个 IE,我担心它根本无法在 Vista 上运行。我希望这可能是由于 DLL 互操作性以外的原因,但我想这可能是一厢情愿的想法。 ;) 不幸的是,我无法访问遗留的东西来修复它,所以解决方案 A 是不可能的。考虑到旧东西的使用频率以及使用它的人,VM 也不实用。第三个选项是一个有效的观点,尽管如果这是最简单的方法似乎很荒谬。 ;) 感谢您的回复!
    【解决方案2】:

    Webbrowser ActiveX 控件在 Quirks 模式下将使用旧的 IE5 (!) 呈现。 (有关详细信息,请参阅 IEBlog - 怪癖/标准区别适用于 IE[6-8])您提到了“遗留的东西” - 我假设页面不那么有效,因此是怪癖模式。

    这意味着:嵌入式控件,对于不符合标准的页面(大多数旧的东西不符合),将使用旧的 IE5 Quirks 模式呈现,即使在 IE8 中也是如此。要在其中测试您的代码,您可以使用MS Internet Explorer Application Compatibility VPC Images - 一组用于Virtual PC 的磁盘映像(像啤酒一样免费),分别安装了 IE6、7 和 8。

    我正在为此类遗留应用程序开发新功能,并且所有三种浏览器在 Quirks 模式下的行为方式都相同(IE8 有一些非常小的 quirks-mode 怪癖,但可以轻松解决这些问题)。

    【讨论】:

    • 您好,感谢您的回复。在我们的例子中,这是一种应用程序使用浏览器嗅探来确定它是否是 IE6 的情况(其中一种 == 而不是 >= 缺乏预见性的情况),所以不幸的是它实际上需要是 IE6。不过,感谢您花时间回答。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2010-09-08
    • 2015-01-15
    • 1970-01-01
    相关资源
    最近更新 更多