代码之家  ›  专栏  ›  技术社区  ›  Rushikesh Talokar

值得学习COM吗?

  •  5
  • Rushikesh Talokar  · 技术社区  · 15 年前

    我在考虑学习COM.But 我听说微软推出了.NET作为COM的替代品。 实际上我开始学习UMDF设备驱动程序的COM。

    4 回复  |  直到 13 年前
        1
  •  8
  •   Just another metaprogrammer    15 年前

    UMDF是一个开发用户模式设备驱动程序的框架。我认为设备驱动程序的一个关键要求是:快速加载。我不想仅仅因为我有一个时髦的设备驱动程序,它必须加载和JIT.netframework(预先JIT但仍然如此),就推迟启动时间。

    当然,你也可以开发臃肿的com库,但有能力你可以避免它。您无法避免.NET运行时。

    因此,即使UMDF允许.NET开发,我现在也不希望设备驱动程序用.NET编写。

    别误会我。我喜欢.NET。我只是不认为它与设备驱动程序混合得那么好,即使我们谈论的是用户模式驱动程序。

        2
  •  11
  •   Matt Greer    15 年前

    COM是一个古老、乏味和令人沮丧的东西。我认为没有人喜欢使用COM。所以一般来说,我建议你不要学它,除非你有一个非常令人信服的理由。如果有一个COM库您需要使用,我将通过COM互操作学习如何使用它,它使您能够从.NET使用COM。

        3
  •  10
  •   Hans Passant    15 年前

    很明显,.NET是用来取代COM的。结果很好,非常成功。但COM是 到处 在Windows中,你不能对一个典型的程序手舞足蹈,也不能在某个地方碰到COM。这从任何.NETGUI程序的第一位代码开始,[statthread]。

    任何

    坚硬的 .

    MSDN magazine article 尽管作者的结论是错误的。

    你呢 用.NET语言编写COM接口声明并实现它们。只是你得到了 来自SDK的帮助。你需要很好地了解COM才能把它们做好。

    能够 用C语言编写代码,但必须自己编写所有接口声明。事实上,这里只使用C++。

        4
  •  3
  •   user180326 user180326    15 年前

    COM很有用,因为它允许您构建一个独立于语言的API,可以从多种语言中使用。现在.net基本上用于sampe目的,尽管它的可访问性较差。如果对.net编程,许多COM API“只起作用”,尽管对COM的工作原理有一些基本的了解是很好的(比如COM使用refcounting进行内存管理,而.net使用垃圾回收)。

    推荐文章