_CrtSetReportMode
生成される_CrtDbgReport
特定のレポートの種類と、マクロ 、マクロ、マクロ 、マクロ (デバッグ バージョンのみ) など_ASSERT
_ASSERT_EXPR
_ASSERTE
_RPT
_RPTW
_RPTFW
_RPTF
、マクロを呼び出す_CrtDbgReport
_CrtDbgReportW
マクロの宛先または送信先を指定します。
構文
int _CrtSetReportMode(
int reportType,
int reportMode
);
パラメーター
reportType
レポートの種類: _CRT_WARN
、_CRT_ERROR
、および _CRT_ASSERT
。
reportMode
reportType
の新しいレポート モード。
戻り値
正常に終了した場合、_CrtSetReportMode
は reportType
で指定されたレポートの種類の以前のレポート モードを返します。 無効な値が渡されたreportType
場合、または無効なモードが指定されているreportMode
場合は、「_CrtSetReportMode
パラメーターの検証」の説明に従って無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、この関数は errno
を EINVAL
に設定し、-1 を返します。 詳細については、「errno
」、「_doserrno
」、「_sys_errlist
」、および「_sys_nerr
」を参照してください。
解説
_CrtSetReportMode
は、_CrtDbgReport
の出力先を指定します。 マクロ _ASSERT
、_ASSERTE
、_RPT
、および _RPTF
は _CrtDbgReport
を呼び出すので、_CrtSetReportMode
はこれらのマクロで指定されるテキストの出力先を指定します。
_DEBUG
が定義されていない場合、_CrtSetReportMode
の呼び出しは前処理で削除されます。
メッセージの出力先を定義するために呼び出 _CrtSetReportMode
さない場合、次の既定値が有効になります。
アサーション エラーとエラーは、デバッグ メッセージ ウィンドウに送られます。
Windows アプリケーションからの警告は、デバッガーの出力ウィンドウに送られます。
コンソール アプリケーションからの警告は表示されません。
次の表は、Crtdbg.h
で定義されているレポートの種類の一覧です。
レポートの種類 | 説明 |
---|---|
_CRT_WARN |
警告、メッセージ、およびすぐに注意する必要のない情報。 |
_CRT_ERROR |
エラー、回復不能な問題、および早急の対応を必要とする問題。 |
_CRT_ASSERT |
アサーション エラー (FALSE に評価される、アサート対象の式)。 |
_CrtSetReportMode
関数は、reportMode
で指定されたレポートの種類に対して reportType
で指定された新しいレポート モードを割り当て、reportType
に対して以前に定義されたレポート モードを返します。 次の表は reportMode
で使用できる選択肢と、結果となる _CrtDbgReport
の動作の一覧です。 これらのオプションは、Crtdbg.h でビット フラグとして定義されています。
レポート モード | _CrtDbgReport の動作 |
---|---|
_CRTDBG_MODE_DEBUG |
デバッガーの出力ウィンドウにメッセージを書き込みます。 |
_CRTDBG_MODE_FILE |
ユーザーが指定したファイル ハンドルにメッセージを書き込みます。 書き込み先として使用する特定のファイルまたはストリームを定義するには、_CrtSetReportFile を呼び出す必要があります。 |
_CRTDBG_MODE_WNDW |
[中止]、[再試行]、[無視] ボタンと共にメッセージを表示するメッセージ ボックスを作成します。 |
_CRTDBG_REPORT_MODE |
指定した reportMode の reportType を返します。1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
各レポートの種類は、1 つ、2 つ、または 3 つのモードか、モードなしを使用して報告できます。 そのため、1 つのレポートの種類に対して複数の宛先を定義できます。 たとえば、次のコード片は、デバッグ メッセージ ウィンドウと stderr
の両方に送られるアサーション エラーを発生させます。
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
さらに、レポートの種類ごとにレポート モードを個別に制御できます。 たとえば、前に示したように、出力のデバッグ文字列に移動し、_CRT_ASSERT
デバッグ メッセージ ウィンドウを使用して表示し、送信先stderr
を指定reportType
_CRT_WARN
できます。
必要条件
ルーチンによって返される値 | 必須ヘッダー | オプション ヘッダー |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
互換性の詳細については、「 Compatibility」を参照してください。
ライブラリ:C ランタイム ライブラリのデバッグ バージョンのみ。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示