什么是二进制标准

时间:2014-04-27 16:18:55

标签: .net com middleware dcom

我一直在阅读COM,提到二进制标准以及如何使语言独立成为可能。 实际上是什么二进制标准? 在我看来,二进制文件意味着机器级代码,如果它意味着机器语言,它怎么能独立呢?

1 个答案:

答案 0 :(得分:3)

在最低级别,COM实际上只是一个描述两个软件如何通信的二进制级标准。它是二进制文件,因为它的 100%语言独立,它不依赖于源代码,而只依赖于内存中特定的结构布局。

在我看来,最好的文章是The COM Programmer's Cookbook。这个着名的二进制标准在我引用的文档开头解释:

  

服务用户和实现之间的分离是通过   间接函数调用。 COM接口只不过是一个命名   函数指针表(方法),每个都有记录   行为。根据界面记录行为   函数的参数和对象内状态的模型   实例。实例中的模型描述将为no   超过了使其他方法的行为所需要的   界面可以理解。 功能表称为a   虚表

     

接口实际上是指向vtable的指针。 vtable是   通常由多个实例共享,因此方法需要不同   指针,以便能够找到接口所连接的对象   至。这是接口指针,vtable指针是唯一的   接口的客户端可以访问的东西。 按   设计,这种安排与虚拟方法调用约定相匹配   C ++类,因此COM接口与C ++二进制兼容   抽象类。

它附带的模式代表内存中的二进制标准布局:

COM VTABLE