COM双接口

Ton*_*ion 6 com interface idispatch

COM中的双接口是能够通过DispInterface或VTable方法访问的接口.

现在可以有人告诉我这两种方法的区别究竟是什么?

我认为VTable是一个虚拟表,它在实现类层次结构时保存指向不同函数的指针,该类层次结构具有可在子类中重写的虚函数.但是我不知道这与COM中的双接口有什么关系?

Dev*_*olo 3

简而言之,COM是二进制规范,而不是语言规范。双接口和代码中的派生类之间确实没有关联。苹果和橙子。

VTable 是“早期绑定”的,因此速度更快。您知道在编译时调用的方法的类型。

使用 DispInterface 是“后期绑定”,因此速度较慢,但​​更灵活。它广泛用于脚本编写。方法和属性类型是在运行时确定的。

我希望这个简短的解释有所帮助。

  • @Tony:这意味着COM只解决组件如何在二进制级别进行通信——它没有说明组件是如何开发的,或者代码是用什么语言编写的,或者是否存在“类层次结构”。请参阅组件对象模型:技术概述 @ http://msdn.microsoft.com/en-us/library/ms809980.aspx (2认同)