常规 MIDL 命令行语法
MIDL 编译器处理 IDL 文件和可选的应用程序配置文件 (ACF) 以生成一组输出文件。 IDL 文件的接口属性列表中指定的属性确定编译器是为 RPC 接口还是为自定义 OLE 接口生成源文件。
切换选项
midl [command-line-switch [switch-options]] filename
-
command-line-switch
-
指定 MIDL 编译器命令行开关。 开关可以按任意顺序显示。
-
switch-options
-
指定与每个交换机关联的选项。 每个 MIDL 编译器开关的引用条目中介绍了有效选项。
-
filename
-
指定 IDL 文件的名称。 此文件通常具有扩展名 .idl,但它可以具有另一个或无扩展名。
备注
以下列表显示了为名为 Name.idl 的 IDL 文件生成的文件的默认名称。 可以使用命令行开关来替代这些默认名称。 请注意,IDL 文件的名称可以具有 .idl 以外的扩展名,或者根本不具有扩展名。
默认情况下, (即,如果接口属性列表不包含 对象 或 本地 属性) ,则编译器会为 RPC 接口生成以下文件:
- 客户端存根 (name_c.c)
- 服务器存根 (name_s.c)
- 头文件 (name.h)
当 对象 属性出现在接口属性列表中时,编译器会为 COM 接口生成以下文件:
- 接口代理文件 (name_p.c)
- 接口头文件 (name.h)
- 接口 UUID 文件 (name_I.c)
当 本地 属性出现在接口属性列表中时,编译器仅生成接口头文件 Name.h。
随 Microsoft RPC 一起提供的 MIDL 编译器根据需要调用 C 预处理器来处理 IDL 文件。 它不会自动调用 C 编译器来编译生成的文件。
注意
随 Microsoft RPC 一起提供的 MIDL 编译器使用的命令行语法与 DCE IDL 编译器不同。
MIDL 编译器切换 /env、 /server、 /sstub 和 /out 会影响服务器存根文件。
从 MIDL 版本 6.0.359 开始,MIDL 编译器的默认命令行选项为 /Oicf /robust。 若要禁用 /robust,请指定 /no_robust 选项。
头文件
头文件包含 IDL 文件中声明的所有数据类型和操作的定义。 调用定义的操作、实现定义的操作或操作定义的类型的所有应用程序模块都必须包含头文件。
MIDL 编译器切换 /header 和 /out 会影响头文件。