有没有关于在C#中使用COM的好教程?

19

我需要编写一个C#应用程序来使用第三方INPROC COM对象,这是我的一个副业项目。不幸的是,C#不是我主要掌握的编程语言,所以我的知识有限。是否有一些好的教程可以让我学习如何从C#中访问COM对象?为了让该第三方COM对象能够正常工作,我需要创建指定COM接口的实现并将其提供给COM对象。

4个回答

40

我有一个相当庞大的.NET <-> COM书签收藏,以下是我正在转储的内容。

问题在于没有一篇教程/文章涵盖所有基础知识和陷阱。因此,您需要查看其中几篇并混合使用,具体取决于您想要做什么。

以下是到目前为止我找到的最佳资料...

常规 .NET COM 文章/教程

  • .NET 中的COM互操作性 第一部分 第二部分 第三部分
  • COM互操作性第1部分: C#客户端教程 第2部分:C#服务器教程
  • 在C#中调用COM组件(后期绑定)
  • 使用C#构建COM对象
  • .NET和COM的MSDN

    .NET 中的 ActiveX


    2
    救命稻草....这正是我在寻找的....虽然我不是这个主题的粉丝,但我需要复习这个无聊的话题!!!感谢书签 dumP!!! - IbrarMumtaz

    15

    有一本好书叫.NET and COM: The Complete Interoperability Guide,我即将开始阅读它,因为我想更好地理解COM互操作性。也许它对你也有用,可以去看看。

    这本书的重点在于COM互操作性(因为它是一个更大的主题),而讨论的核心分为四部分:

    * Using COM Components Within the .NET Framework
    * Using .NET Framework Components from COM
    * Designing Good .NET Framework Components for COM Clients
    * Designing Good COM Components for .NET Framework Clients
    
    本书的范围涵盖了在.NET Framework中使用“非托管代码”相关的一切内容。还介绍了构建在COM互操作性基础上的技术,包括:Windows窗体控件和ActiveX控件的互操作性、与COM+的互操作性以及与分布式COM(DCOM)的互操作性。虽然Platform Invocation Services是一项与COM互操作性不同的技术,但两者有许多重叠之处,因此将其包含在本书中是自然而然的。所有这些技术都是Common Language Runtime和.NET Framework的核心部分,并且在未来几年中不仅可能作为现有软件项目的迁移路径,而且还可能用于全新的软件开发。
    此外,您可以查看这本(合法的)免费PDF电子书《COM和.NET互操作性》,您可以从TheServerSide.com下载。您需要注册才能下载,但如果您不想注册,可以使用BugMeNot

    这本书不是有点老了吗?那时候是2002年,.net和c#的第一个版本才刚刚发布。 - grigoryvp
    9
    好的,我会尽力进行翻译。这是需要翻译的内容:“Yeah, I wondered that too, but I don't think the way COM interop works has changed since the early days of .NET.” - Dale
    是的,由于模型的性质,它的操作方式相同或非常相似。当你深入了解COM时,它非常复杂,但也非常灵活。 - Anthony Mason

    3

    基本原理很简单,MSDN提供了良好的参考信息。

    在您的C#项目中,使用“添加引用”将COM组件添加为引用。

    如果需要实现COM接口,请创建一个继承自该接口的类:

    class MyClass : IMyComInterface
    {
       ...
    }
    


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接