COM Interop .NET 程序集 - 一个术语问题

Posted

技术标签:

【中文标题】COM Interop .NET 程序集 - 一个术语问题【英文标题】:COM Interop .NET Assembly - A Terminology Question 【发布时间】:2011-04-07 14:35:33 【问题描述】:

我的问题只是关于术语。 “COM 互操作”是否仅指在 .NET 项目中使用 COM 组件或对象?

哪个术语最适合用于制作 .NET 程序集以及设计和配置它以用于 COM 应用程序(例如 VB6 或 VBA)?

【问题讨论】:

它是双向的,.NET 代码可以与 COM 服务器互操作,并且您可以在 .NET 代码中创建一个 COM 服务器。两者 COM 互操作。最好的术语是属性的名称,你让它“COM可见”。 【参考方案1】:

COM Object:

组件对象模型 (COM) 是一个 软件的二进制接口标准 微软在 1993. 用于实现进程间通信和动态 在大范围内创建对象 编程语言。术语 COM 是 常用于微软软件 发展产业为伞 包含 OLE、OLE 的术语 自动化、ActiveX、COM+ 和 DCOM 技术。

所以 COM 对象不依赖于语言。这是一种通信协议。 所以任何使用这个协议的东西都是一个 COM 对象。

您可以使用 .NET 框架创建支持 COM 通信的 dll。

COM Interop 是 .NET 用于包装 COM 通信的接口,因此您可以编写常规 .NET 代码,而不必弄乱 COM 协议和声明。当您将 COM 对象引用到项目时,Visual Studio 可以创建互操作。

COM Interop 是一项包含在内的技术 在启用 COM 的 .NET CLR 中 与 .NET 对象交互的对象, 反之亦然。

【讨论】:

【参考方案2】:

此类类通常被称为 CCW 的 COM 可调用包装器。 COM 互操作意味着两者:从 .Net 使用 COM 和通过 COM 使用 .Net。

【讨论】:

【参考方案3】:

COM interop 通常指的是 .NET 绑定程序集 到 COM DLL。例如,当您在 .NET 项目中添加对 COM DLL 的引用并创建它时。

【讨论】:

【参考方案4】:

据我所知,COM Interop 将使用 .NET 中的 COM 或其他方式。

现在您有两个选项可以让您的 .NET 程序集COM 可见请参阅:"Register for COM Interop" vs "Make assembly COM visible"

当您想要使用 COM 库时,Visual Studio 将使用 Tblimp.exe 并生成可在 .NET 中使用的互操作程序集。对于流程其他方式有Tblexp.exe

This somewhat old article 涵盖了很多关于 .NET 中的 COM 互操作的内容。 (注意,它以两种方式谈论 Iterop)

请记住 .NET4 has some nice new features 使用 来自 .NET 的 COM。

【讨论】:

以上是关于COM Interop .NET 程序集 - 一个术语问题的主要内容,如果未能解决你的问题,请参考以下文章

在 vb.net 中使用 vb6 ocx 控件时无法加载文件或程序集“Interop.VBRUN”

vs2013 命名空间“Microsoft.Office”中不存在类型或命名空间名称“Interop”。是否缺少程序集引用?

如何在 .net 中添加对“Microsoft.Office.Interop.Word”的引用

检查是不是存在 office.interop 程序集

COM Interop 和 .NET 3.5 的问题 - 调试和发布模式下的不同行为

我在 .net 应用程序中找不到 microsoft.office.interop.excel