1

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

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

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

4

2 回答 2

3

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

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

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

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

于 2011-04-14T17:36:25.870 回答
1

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

于 2011-04-14T17:36:59.507 回答