/error 开关确定生成的存根在运行时将执行的错误检查类型。
注释
此功能已过时,不再受支持。 建议使用 /robust 开关。
midl /error { allocation | stub_data | ref | bounds_check | none | all }
切换选项
-
分配
-
检查 midl_user_allocate 是否返回 NULL 值,指示内存不足错误。
-
stub_data
-
生成一个存根,该存根捕获服务器端未划分的异常并将其传播回客户端。
-
裁判
-
生成在运行时运行检查的代码,以确保不会将 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 标志检查其他无效数组边界。
指定 /错误分配时,存根包含在 midl_user_allocate 返回 0 时引发异常的代码。
/error stub_data 选项可防止客户端数据在取消分界期间崩溃服务器,从而有效地提供了一种更可靠的处理非分界操作的方法。
在 Windows 2000 中有效,基础运行时 NDR 封送引擎执行大部分检查。 这意味着,如果使用存根生成的完全解释模式之一(/Oi、 /Oif),则选择不同的错误检查选项不会对性能产生明显影响。
示例
midl /error allocation filename.idl
midl /error none filename.idl
另见