_CrtSetReportMode_CrtSetReportMode

_CrtDbgReportによって生成される特定のレポートの種類の出力先、および_ASSERT、_ASSERTE、_ASSERT_EXPR macros、_ASSERT、ASSERTE、 などの_CrtDbgReport、_CrtDbgReportWを呼び出すすべてのマクロの宛先を指定します。 ASSERT_EXPR マクロ_RPT、_RPTF、_RPTW、_RPTFW マクロ、_RPT、_RPTF、_RPTW、 _RPTFW マクロ(デバッグバージョンのみ)。Specifies the destination or destinations for a specific report type generated by _CrtDbgReport and any macros that call _CrtDbgReport, _CrtDbgReportW, such as _ASSERT, _ASSERTE, _ASSERT_EXPR Macros, _ASSERT, _ASSERTE, _ASSERT_EXPR Macros, _RPT, _RPTF, _RPTW, _RPTFW Macros, and _RPT, _RPTF, _RPTW, _RPTFW Macros (debug version only).

構文Syntax

int _CrtSetReportMode(
   int reportType,
   int reportMode
);

パラメーターParameters

reportTypereportType
レポートの種類: _CRT_WARN_CRT_ERROR、および _CRT_ASSERTReport type: _CRT_WARN, _CRT_ERROR, and _CRT_ASSERT.

reportModereportMode
ReportTypeの新しいレポートモードまたはモード。New report mode or modes for reportType.

戻り値Return Value

正常に完了すると、 _CrtSetReportModeは、 reportTypeで指定されたレポートの種類に対して以前のレポートモードを返します。On successful completion, _CrtSetReportMode returns the previous report mode or modes for the report type specified in reportType. 無効な値がreportTypeとして渡された場合、またはreportmodeに無効なモードが指定されている場合、 _CrtSetReportModeは「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーを呼び出します。If an invalid value is passed in as reportType or an invalid mode is specified for reportMode, _CrtSetReportMode invokes the invalid parameter handler as described in Parameter Validation. 実行の継続が許可された場合、この関数はerrnoEINVALに設定し、-1 を返します。If execution is allowed to continue, this function sets errno to EINVAL and returns -1. 詳細については、「errno、_doserrno、_sys_errlist、_sys_nerr」をご覧ください。For more information, see errno, _doserrno, _sys_errlist, and _sys_nerr.

RemarksRemarks

_CrtSetReportMode _CrtDbgReportの出力先を指定します。_CrtSetReportMode specifies the output destination for _CrtDbgReport. マクロ_ASSERT_ASSERTE_RPT、および_RPTF_CrtDbgReportを呼び出しているため、 _CrtSetReportModeはマクロで指定されたテキストの出力先を指定します。Because the macros _ASSERT, _ASSERTE, _RPT, and _RPTF call _CrtDbgReport, _CrtSetReportMode specifies the output destination of text specified with those macros.

_Debugが定義されていない場合、 _CrtSetReportModeの呼び出しはプリプロセス中に削除されます。When _DEBUG is not defined, calls to _CrtSetReportMode are removed during preprocessing.

_CrtSetReportModeを呼び出してメッセージの出力先を定義しない場合は、次の既定値が有効になります。If you do not call _CrtSetReportMode to define the output destination of messages, then the following defaults are in effect:

  • アサーション エラーとエラーは、デバッグ メッセージ ウィンドウに送られます。Assertion failures and errors are directed to a debug message window.

  • Windows アプリケーションからの警告は、デバッガーの出力ウィンドウに送られます。Warnings from Windows applications are sent to the debugger's output window.

  • コンソール アプリケーションからの警告は表示されません。Warnings from console applications are not displayed.

次の表は、Crtdbg.h で定義されているレポートの種類の一覧です。The following table lists the report types defined in Crtdbg.h.

レポートの種類Report type 説明Description
_CRT_WARN_CRT_WARN 早急の対応を必要としない警告、メッセージ、および情報。Warnings, messages, and information that does not need immediate attention.
_CRT_ERROR_CRT_ERROR エラー、回復不能な問題、および早急の対応を必要とする問題。Errors, unrecoverable problems, and issues that require immediate attention.
_CRT_ASSERT_CRT_ASSERT アサーションエラー ( FALSEに評価されるアサート式)。Assertion failures (asserted expressions that evaluate to FALSE).

_CrtSetReportMode関数は、 reportmodeで指定された新しいレポートモードをreportTypeで指定されたレポートの種類に割り当て、以前に定義したreportTypeのレポートモードを返します。The _CrtSetReportMode function assigns the new report mode specified in reportMode to the report type specified in reportType and returns the previously defined report mode for reportType. 次の表に、 Reportmodeに使用できる選択肢と、 _CrtDbgReportの結果の動作を示します。The following table lists the available choices for reportMode and the resulting behavior of _CrtDbgReport. これらのオプションは、Crtdbg.h でビット フラグとして定義されています。These options are defined as bit flags in Crtdbg.h.

レポート モードReport mode _CrtDbgReport の動作_CrtDbgReport behavior
_CRTDBG_MODE_DEBUG_CRTDBG_MODE_DEBUG デバッガーの出力ウィンドウにメッセージを書き込みます。Writes the message to the debugger's output window.
_CRTDBG_MODE_FILE_CRTDBG_MODE_FILE ユーザーが指定したファイル ハンドルにメッセージを書き込みます。Writes the message to a user-supplied file handle. 書き込み先として使用する特定のファイルまたはストリームを定義するには、_CrtSetReportFile を呼び出す必要があります。_CrtSetReportFile should be called to define the specific file or stream to use as the destination.
_CRTDBG_MODE_WNDW_CRTDBG_MODE_WNDW [中止]、 [再試行] 、および [無視] の各ボタンと共にメッセージを表示するメッセージボックスを作成します。Creates a message box to display the message along with the abort, Retry, and Ignore buttons.
_CRTDBG_REPORT_MODE_CRTDBG_REPORT_MODE 指定されたreportTypereportmodeを返します。Returns reportMode for the specified reportType:

1 _CRTDBG_MODE_FILE1 _CRTDBG_MODE_FILE

2 _CRTDBG_MODE_DEBUG2 _CRTDBG_MODE_DEBUG

4 _CRTDBG_MODE_WNDW4 _CRTDBG_MODE_WNDW

各レポートの種類は、1 つ、2 つ、または 3 つのモードか、モードなしを使用して報告できます。Each report type can be reported using one, two, or three modes or no mode at all. したがって、1 つのレポートの種類に対して複数の書き込み先を定義することができます。Therefore, it is possible to have more than one destination defined for a single report type. たとえば、次のコードフラグメントでは、アサーションエラーがデバッグメッセージウィンドウとstderrの両方に送信されます。For example, the following code fragment causes assertion failures to be sent to both a debug message window and to stderr:

_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );

さらに、各レポートの種類のレポート モードは、個別に制御できます。In addition, the reporting mode or modes for each report type can be separately controlled. たとえば、 _CRT_WARNreportTypeを出力デバッグ文字列に送信するように指定し、前に説明したように、 _CRT_ASSERTはデバッグメッセージウィンドウを使用して表示し、 stderrに送信することができます。For example, it is possible to specify that a reportType of _CRT_WARN be sent to an output debug string, while _CRT_ASSERT be displayed using a debug message window and sent to stderr, as previously illustrated.

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header オプション ヘッダーOptional header
_CrtSetReportMode_CrtSetReportMode <crtdbg.h><crtdbg.h> <errno.h><errno.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

ライブラリCRT ライブラリ機能のデバッグバージョンのみ。Libraries: Debug versions of CRT Library Features only.

関連項目See also

デバッグ ルーチンDebug Routines