【发布时间】:2010-12-10 11:22:42
【问题描述】:
对于一个附带项目,我需要编写一个需要使用第三方 INPROC COM 对象的 C# 应用程序。不幸的是,C# 不是我的主要编程语言,所以我的知识有点有限。关于如何从 C# 访问 COM 对象有什么好的教程吗?使用此第三方 COM 对象需要我创建指定 COM 接口的实现并将该实现提供给 COM 对象以使其正常工作。
【问题讨论】:
对于一个附带项目,我需要编写一个需要使用第三方 INPROC COM 对象的 C# 应用程序。不幸的是,C# 不是我的主要编程语言,所以我的知识有点有限。关于如何从 C# 访问 COM 对象有什么好的教程吗?使用此第三方 COM 对象需要我创建指定 COM 接口的实现并将该实现提供给 COM 对象以使其正常工作。
【问题讨论】:
基础非常简单,MSDN 有很好的参考信息。
在您的 C# 项目中,使用“添加引用”来添加对 COM 组件的引用。
如果需要实现 COM 接口,创建一个继承自它的类:
class MyClass : IMyComInterface
{
...
}
【讨论】:
有一本名为.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 框架中的代码”。 基于 COM 构建的技术 互操作性也是 涵盖-Windows 的互操作性 窗体控件和 ActiveX 控件, 与 COM+ 的互操作性,以及 与分布式 COM 的互操作性 (DCOM)。虽然平台调用 服务是一种独立的技术 COM 互操作性,有很多 重叠的区域,因此包括在 书是天作之合。所有这些 技术是核心部分 公共语言运行时和 .NET 框架,并且可能不会被使用 仅作为迁移的路径 现有的软件项目,但对于 全新的软件开发 未来几年
还可以查看这本(合法的)免费 pdf 电子书 COM and .NET Interoperability,您可以从 TheServerSide.com 下载。您必须先注册才能下载,但如果您不喜欢,可以bugmenot。
【讨论】:
我有一个相当大的 .NET COM 书签集合,我将在下面倾倒。
问题是没有一篇教程/文章涵盖所有基础知识和问题。所以你需要通过其中的几个并混合搭配,这取决于你想要做什么。
这是迄今为止我发现的最好的……
通用 .NET COM 文章/教程
.NET 和 COM 上的 MSDN
.NET 中的 ActiveX
【讨论】: