/error switch

/error 开关确定生成的存根将在运行时执行的错误检查的类型。

注意

此功能已过时,不再受支持。 建议使用 /robust 开关。

 

midl /error { allocation | stub_data | ref | bounds_check | none | all }

切换选项

分配

检查 midl_user_allocate 是否返回 NULL 值,指示内存不足错误。

stub_data

生成一个存根,该存根捕获服务器端的未封存异常,并将其传播回客户端。

裁判

生成在运行时运行检查的代码,以确保不会将 NULL 引用指针传递给客户端存根,并在发现任何 NULL 引用指针时引发RPC_X_NULL_REF_POINTER异常。

bounds_check

根据传输长度规范检查符合性变化和可变数组的大小。

没有

不执行错误检查。

所有

执行所有错误检查。 在 MIDL 版本 5.0 中,这是默认的编译器开关。

备注

/error 开关选择生成的存根文件将执行的错误检查数。 在 MIDL 版本 5.0 中生效,默认设置为 /error all

默认情况下,在所有 MIDL) 版本中 (检查的枚举错误都是在 长枚举 类型 (32 位整数) 和 短枚举 类型之间进行转换时导致的截断错误, (枚举) 的网络数据表示形式,枚举中的标识符数超过 32,767。

默认情况下,在所有版本的 MIDL) 中,内存访问错误检查也 (适用于封送代码中超过缓冲区末尾的指针,以及大小小于零的符合性数组。 使用 /error bounds_check 标志检查其他无效数组边界。

指定 /error 分配时,存根包含当 midl_user_allocate 返回 0 时引发异常的代码。

/error stub_data 选项可防止客户端数据在取消封送期间使服务器崩溃,从而有效地提供了一种更可靠的方法来处理取消封送操作。

在 Windows 2000 中,基础运行时 NDR 封送处理引擎执行大部分检查。 这意味着,如果使用 (/Oi/Oif) 存根生成的完全解释模式之一,则选择不同的错误检查选项不会对性能产生明显影响。

示例

midl /error allocation filename.idl

midl /error none filename.idl

另请参阅

常规 MIDL 命令行语法

/鲁 棒