/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 のすべてのバージョンでも既定で) は、マーシャリング コードのバッファーの末尾を超えるポインターと、サイズが 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
こちらも参照ください