问题描述
|
我对此完全陌生,并且正在关注msdn上的教程:http://msdn.microsoft.com/zh-cn/library/aa645736(v=vs.71).aspx#vcwlkcominteroppart1cclienttutorialanchor2
我的问题是为什么我们要使用COM接口和COM CoClasses?实例化一个COM CoClass实例,实例化一个新对象,这是旧对象,但强制转换为COM接口,这似乎很奇怪。
我真的只是想掌握这里的意识形态...任何帮助都是有用的。
解决方法
理论是将接口(对象可以执行的操作)与实现(如何执行接口或更具体地实例化要执行该操作的特定代码)分开。
仅将类型定义为接口允许COM指定跨多种语言的对象如何进行互操作。这是其主要目标之一。由于接口规范是有关如何传递数据和调用方法的契约,因此任何语言都可以公开COM对象,而客户端无需了解实现者(CoClass)的内部工作原理。
这允许VB6,.net,C ++,deplhi和任何其他多种语言在同一应用程序中进行互操作。
关于COM的维基百科文章在这方面具有一定的背景。
,这是软件工程中的基本设计原则,接口是契约,在com世界中,coClass是实现。对于COM,可以在IDL中定义该接口,但是可以在VB,C ++ 、. net等中完成实现(coClass)。