有关使用C#COM的任何好教程吗?

对于其中一个副项目,我需要编写一个需要使用第三方INPROC COM对象的C#应用​​程序。 不幸的是,C#不是我的主要编程语言,所以我的知识有点受限。 有关如何从C#访问COM对象的任何好的教程吗? 使用此第三方COM对象需要我创建指定COM接口的实现,并将该实现提供给COM对象以使其起作用。

有一本名为.NET和COM的完整互操作性指南 ,我即将开始阅读,因为我希望更好地理解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)的互操作性。 虽然平台调用​​服务是与COM互操作性不同的独立技术,但是存在许多重叠区域,因此书中包含的内容非常适合。 所有这些技术都是公共语言运行时和.NET Framework的核心部分,不仅可以用作现有软件项目的迁移路径,还可以用于未来几年的全新软件开发

还可以查看这个(合法)免费的pdf电子书COM和.NET互操作性 ,您可以从TheServerSide.com下载。 你必须在下载之前注册,但如果你不喜欢它,你可以只是bugmenot 。

我有一个很大的.NET < - > COM书签集合,我正在下面转储。

问题是没有一篇教程/文章涵盖所有基础知识和gotacha。 所以你需要经历几个并混合搭配,这取决于你想做什么。

这是迄今为止我发现的最好的……

一般.NET COM文章/教程

  • .NET – COM互操作性。
  • .NET Framework中的COM互操作性:第I部分。
  • 了解与.NET应用程序的经典COM互操作性。
  • 将.NET组件公开给COM。
  • 用C#构建COM对象。
  • 从非托管C ++代码调用托管.NET C#COM对象。
  • Native&Managed Interop变得简单。
  • 使用.NET程序集与COM客户端。
  • Moserware:在.NET中使用模糊的Windows COM API
  • .NET中的COM互操作性第1 部分第2 部分第3部分
  • COM Interop第1部分:C#客户端教程 第2部分:C#服务器教程
  • 从C#调用COM组件(后期绑定)
  • 在C#中构建COM对象

.NET和COM上的MSDN

  • COM Interop教程(C#)
  • 将.NET Framework组件公开给COM
  • Interop Marshaling
  • 高级COM互操作性
  • 如何:为COM Interop注册组件

.NET中的ActiveX

  • Internet Explorer ActiveX控件C#类库
  • 在.NET中逐步创建ActiveX。
  • 在托管代码中动态添加ActiveX控件。
  • 将Windows窗体控件公开为ActiveX控件。
  • 在.NET中导入和扩展ActiveX控件。
  • C#教程 – 使用C#的ActiveX
  • CodeGuru:.NET中的可扩展OLE属性页
  • 在.NET中编写ActiveX控件
  • 在.NET Compact Framework 2.0中托管ActiveX控件
  • 在COM控件容器中托管Windows窗体控件 – O’Reilly Media

也许这对你有用: http : //msdn.microsoft.com/en-us/library/aa645736%28VS.71%29.aspx

基础非常简单,MSDN有很好的参考信息。

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

如果需要实现COM接口,请创建一个inheritance自它的类:

 class MyClass : IMyComInterface { ... }