COM 协同对象和接口 C#

发布于 2024-11-01 08:14:56 字数 428 浏览 0 评论 0原文

我对此完全陌生,正在关注 msdn 上的教程: http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx#vcwlkcominteroppart1cclienttutorialanchor2

我的问题是为什么我们使用 COM 接口和 COM CoClass?实例化一个 COM CoClass 的实例,实例化一个新对象,该对象是旧对象,但转换为 COM 接口,这似乎很奇怪。

我真的只是想掌握这里的意识形态......任何帮助都是有用的。

I am completely new to this and am following a tutorial on msdn: http://msdn.microsoft.com/en-us/library/aa645736(v=vs.71).aspx#vcwlkcominteroppart1cclienttutorialanchor2

My question is why do we use COM Interfaces AND COM CoClasses? It seems odd to instantiate an instance of a COM CoClass, instantiate a new object that is the old object but casted as the COM Interface.

I really am just wanting to grasp the ideology here...any help is useful.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜味超标? 2024-11-08 08:14:56

其理论是将接口(对象可以做什么)与实现(它如何做,或者更具体地说,实例化哪些特定代码来执行它)分开。

仅将类型定义为接口允许 COM 指定跨多种语言的对象如何互操作;这是其主要目标之一。由于接口规范是关于如何传递数据和调用方法的契约,因此任何语言都可以公开 COM 对象,而客户端无需了解实现者(CoClass)的内部工作原理。

这允许 VB6、.net、C++、deplhi 和任意数量的其他语言在同一应用程序中进行互操作。

关于 COM 的维基百科文章 在这方面有一些很好的背景。

The theory is to seprate the interface (what an object can do) from the implementation (how it does it or more specifically what specific code is instantiated to do it).

Defining types only as interfaces allows COM to specifiy how objects across multiple languages inter-operate; this being one of its main goals. Since the interface specification is a contract for how to pass data and invoke methods any language can expose a COM object without clients needing to know about the inner workings of the implementor (the CoClass).

This allows VB6, .net, C++, deplhi and any number of other languages to interoperate within the same application.

The wikipedia article on COM has some good background in this regard.

顾北清歌寒 2024-11-08 08:14:56

这是软件工程中的一个基本设计原则,接口是契约,在com世界中,coClass是实现。对于COM,接口可以在IDL中定义,但实现(coClass)可以在VB、C++、.net等中完成。

This is a basic design principle in software engineering, interface is a contract, in com world, coClass is a implementation. for COM, the interface can be defined in IDL, but implementation (coClass) can be done in VB, C++, .net etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文