/error switch

/error スイッチは、生成されたスタブが実行時に実行するエラー チェックの種類を決定します。

注意

この機能は廃止され、サポートされなくなりました。 /robust スイッチの使用をお勧めします。

 

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

スイッチ オプション

割り当て

midl_user_allocateNULL 値を返すかどうかを確認し、メモリ不足エラーを示します。

stub_data

サーバー側で非マーシャリング例外をキャッチし、それらをクライアントに伝達するスタブを生成します。

参考

実行時にチェックを実行して NULL 参照ポインターがクライアント スタブに渡されないようにするコードを生成し、検出された場合はRPC_X_NULL_REF_POINTER例外を発生させます。

bounds_check

伝送長の指定に対して、準拠が異なる配列と変化する配列のサイズをチェックします。

なし

エラー チェックを実行しません。

すべての

すべてのエラー チェックを実行します。 MIDL バージョン 5.0 では、これは既定のコンパイラ スイッチです。

解説

/error スイッチは、生成されたスタブ ファイルが実行するエラー チェックの数を選択します。 MIDL バージョン 5.0 では、既定の設定は /error all です。

チェックされる列挙型エラー (MIDL のすべてのバージョンでは既定) は、 長い列挙型 (32 ビット整数) と 短い列挙型 ( enum のネットワーク データ表現) と、列挙体の識別子の数が 32,767 を超えたときに発生する切り捨てエラーです。

メモリ アクセス エラー チェック (MIDL のすべてのバージョンでも既定で) は、マーシャリング コードのバッファーの末尾を超えるポインターと、サイズが 0 未満の準拠配列に対するものです。 /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 コマンド ライン構文

/堅牢