[version] 接口属性标识 RPC 接口的多个版本之间的特定版本。 使用版本属性可确保只允许绑定兼容版本的客户端和服务器软件。
version ( major-value[[. minor-value]] )
参数
-
major-value
-
指定一个介于零到 65,535 之间的短无符号整数(含 65,535),表示主要版本号。
-
minor-value
-
指定一个介于零和 65,535 之间的短无符号整数,包括表示次要版本号。 次要版本值是可选的。 如果存在,次要版本值将按句点字符(.)与主版本号分隔。 如果未指定,次要版本值为零。
注解
MIDL 编译器不支持多个版本的 COM 接口。 因此,包含 [object] 属性的接口属性列表不能包含 [version] 属性。 若要创建现有 COM 接口的新版本,请使用接口继承。 派生的 COM 接口具有不同的 UUID,但继承基接口的接口成员函数、状态代码和接口属性。
结合 [uuid] 值, [version] 值唯一标识接口。 运行时库在客户端调用远程函数时将 [version] 和 [uuid] 值传递给服务器。 如果以下操作,客户端可以绑定到给定接口的服务器:
- [uuid] 值相同。
- 主版本号相同。
- 客户端的次要版本号小于或等于服务器的次要版本号。
权益和用户的权益是保留版本之间的向上兼容性,即修改接口,以便仅更改次要版本号。 添加现有函数未使用的新数据类型以及添加新函数而不更改现有函数的接口规范时,可以保持向上兼容性。
如果满足以下任一条件,请更改主版本号:
- 如果更改现有函数使用的数据类型。
- 如果更改现有函数的接口规范(例如添加或删除参数)。
- 如果添加由现有函数调用的回调。
如果满足以下所有条件,请更改次要版本号:
- 如果添加任何现有函数或回调不使用的类型定义或常量。
- 如果不更改任何现有函数,并将新函数添加到接口。
- 如果添加任何现有函数未调用的回调,并且新回调遵循任何现有函数。
如果修改符合接口的向上兼容更改条件,请使用以下过程。
修改接口 (IDL) 文件
- 将新的常量和类型定义添加到接口文件。
- 将回调函数添加到接口文件的末尾。
- 将新函数添加到接口文件的末尾。
[version] 属性最多可以在接口标头中发生一次。
当版本属性不存在时,接口的默认版本为 0.0。
主要数字和次要数字之间的句点字符是分隔符,不表示小数点。 次要数被视为整数。 前导零并不重要。 尾随零非常重要。
例如,版本设置 1.11 表示一个主要值 1,次要值为 11。 版本 1.11 不表示介于 1.1 和 1.2 之间的值。
另见