/error 參數
/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 位整數 (和 簡短 列舉類型之間轉換時,截斷錯誤, (列舉) 的網路資料標記法,以及列舉中超過 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