/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

另請參閱

一般 MIDL 命令列語法

/robust