对于其中一个副项目,我需要编写一个需要使用第三方INPROC COM对象的C#应用程序。不幸的是,C#不是我的主要编程语言,所以我的知识有点受限。有关如何从C#访问COM对象的任何好的教程吗?使用这个第三方COM对象需要我创建指定COM接口的实现,并将该实现提供给COM对象,以使其正常工作。
答案 0 :(得分:35)
我有一个很大的.NET< - > COM书签集合,我正在下面倾销。
问题在于没有一篇教程/文章涵盖所有基础知识和gotacha。所以你需要经历几个并混合搭配,这取决于你想做什么。
这是迄今为止我发现的最好的......
一般.NET COM文章/教程
.NET上的MSDN& COM
.NET中的ActiveX
答案 1 :(得分:12)
有一本名为.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)。虽然平台调用 服务是一项独立的技术 COM互操作性有很多 重叠的区域,所以包括在 书很自然。所有这些 技术是核心的一部分 公共语言运行时和.NET 框架,很可能不会使用 仅作为迁移的路径 现有的软件项目,但是 全新的软件开发 未来几年
另请查看这个(合法)免费的pdf电子书COM and .NET Interoperability,您可以从TheServerSide.com下载。您必须先注册才能下载,但如果您不喜欢,可以bugmenot进行注册。
答案 2 :(得分:3)
答案 3 :(得分:2)
基础知识非常简单,MSDN有很好的参考信息。
在C#项目中,使用“添加引用”添加对COM组件的引用。
如果需要实现COM接口,请创建一个继承它的类:
class MyClass : IMyComInterface
{
...
}