/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
另请参阅