应用程序配置文件 (ACF)
分布式应用程序的某些方面可能会影响一个组件,但与另一个组件无关。 例如,对象可能包含大型的复杂数据结构,并将此数据结构的内容传递给另一个对象。 此数据结构的确切布局对接收应用程序可能毫无意义。 此外,结构可能包含 MIDL 编译器无法识别且无法生成封送和取消封送代码的数据类型。
客户端应用程序可以共享同一接口,但在不同的平台上运行;它们可能需要自己的一组封送处理例程。 最后,单个客户端可能并不总是需要同一组函数。 为永远不会在特定客户端应用程序中实现的函数生成存根代码效率低下。
通过在应用程序配置文件 (ACF) 中定义接口的这些本地方面,可以将客户端接口之间的差异与其网络表示形式分开,使服务器能够以一致的格式发送和接收数据,并使存根代码更加紧凑和高效。
ACF 接口定义的结构和语法与 IDL 定义相同:
[ interface-attribute-list] interface interface-name {. . .}
默认情况下,ACF 接口名称必须与 IDL 定义中的名称匹配。 但是,使用 MIDL 编译器选项 / acf 显式指定 ACF 文件名时,接口名称不必匹配。 此功能允许多个接口共享单个 ACF 规范。