【问题标题】:ATL COM is the only way to develop IE7 or above addons/extensions?ATL COM 是开发 IE7 或更高版本插件/扩展的唯一方法吗?
【发布时间】:2013-05-13 07:14:34
【问题描述】:

我浏览了互联网上的各种资源,发现 ATL COM 用于开发 IE9 或更高版本的插件。但据我所知,这个图书馆是非常古老的图书馆。必须有一些新的东西可以用来开发 IE 插件。

如果您有任何想法/建议,请告诉我。

【问题讨论】:

  • ATL 并没有那么老,而且它的设计已经足够好,以至于它至少可以接受一些问题,即替代品是否会明显更好。
  • 所以目前没有其他方法可以创建 IE 插件。这种理解正确吗?
  • ATL 并不老;它经验丰富。它随着 Visual C++ 的每个版本而更新,并且从一开始就多次刷新,以至于 MFC 现在从 ATL 中窃取了它的大部分功能。开箱即用的“单击此以制作骨架 IE 插件”功能是通过向导提供给开发工作室的,但最终它的核心是 COM,如果你愿意的话,你可以用原始 C 语言编写它(并且值得怀疑)理智)。
  • 好吧,我想说 ATL 确实老了,但非常有活力和活力。
  • 它是稳定的,不幸的是,“死”的代号太常见了。 ATL 不需要编写 COM 代码,不使用它只是有点愚蠢。现有书籍非常好,仍在印刷中。

标签: c++ visual-c++ dll com atl


【解决方案1】:

不,没有必要使用 ATL。您当然可以在没有 ATL 帮助的情况下创建符合 COM 标准的组件。

【讨论】:

    【解决方案2】:

    通常,COM 与语言无关,因此您可以使用任何支持它的编程语言和库。

    也可以参考这个问题:Developing Internet Explorer Extensions?

    【讨论】:

    • 感谢塞尔吉乌斯!!如果我使用 ATL COM 或 C# .NET 编写 BHO 程序,有什么区别吗?
    • C# 需要 .NET 框架,而 ATL COM 可以在没有任何依赖项的情况下构建。
    • 我看过IObjectWithSite接口的描述,但是看不懂。请让我知道它是什么以及它在您的语言中是如何工作的。
    • 好的。站点是托管对象的容器。使用 IObjectWithSite 容器告诉对象它现在是它的宿主。之后,对象可以与其宿主交互(它有一个指向宿主的指针)。
    • Ok.So 容器站点是一个 IE 浏览器(比如说浏览器上的按钮/图标),对象是我们注册的应用程序。如果我错了,请纠正我。
    猜你喜欢
    • 1970-01-01
    • 2010-10-19
    • 2010-12-16
    • 1970-01-01
    • 2017-04-23
    • 2011-04-28
    • 2012-07-27
    • 1970-01-01
    • 2016-12-28
    相关资源
    最近更新 更多