次の方法で共有


_CrtSetReportFile

_CrtSetReportMode_CRTDBG_MODE_FILEを指定すると、メッセージ テキストを受け取るために、ファイル ハンドルを指定できます。_CrtDbgReport、_CrtDbgReportW によって、_CrtSetReportFile がテキスト (デバッグ バージョンだけ) の出力先を指定するために使用されます。

_HFILE _CrtSetReportFile( 
   int reportType,
   _HFILE reportFile 
);

パラメーター

  • reportType
    :レポートの種類 _CRT_WARN_CRT_ERROR_CRT_ASSERT

  • reportFile
    reportTypeの新しいレポート ファイル。

戻り値

正常に終了した場合、_CrtSetReportFile は reportTypeで指定されたレポートの種類に対して定義される前のレポート ファイルを返します。無効な値が reportTypeとしてを渡すと、この関数は パラメーターの検証に説明されているように、無効なパラメーター ハンドラーが実行されます。実行の継続が許可された場合、errno が EINVAL に設定され、関数から _CRTDBG_HFILE_ERROR が返されます。詳細については、「errno、_doserrno、_sys_errlist、および _sys_nerr」を参照してください。

解説

_CrtSetReportMode 関数と**_CrtSetReportFile** が _CrtDbgReportによって生成される特定のレポートの種類の移動先を定義するために使用されます。特定のレポートの種類の _CRTDBG_MODE_FILE のレポート モードを再配置するには _CrtSetReportMode が呼び出された特定のファイルを定義するか、コピー先として使用するデータ フローが実現 _CrtSetReportFile、を呼び出す必要があります。_DEBUG が未定義の場合、_CrtSetReportFile の呼び出しはプリプロセスで削除されます。

次の表は reportFile で使用できるオプションの一覧と _CrtDbgReportの結果の動作を示しています。これらのオプションは、Crtdbg.h が bit でフラグが設定として定義されます。

  • file handle
    メッセージの対象となるファイルのハンドル。まず、ハンドルの有効性を検証されません。ファイルへのハンドルを開閉する必要があります。次に例を示します。

       HANDLE hLogFile;
       hLogFile = CreateFile("c:\\log.txt", GENERIC_WRITE, 
          FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, 
          FILE_ATTRIBUTE_NORMAL, NULL);
       _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
       _CrtSetReportFile(_CRT_WARN, hLogFile);
    
       _RPT0(_CRT_WARN,"file message\n");
       CloseHandle(hLogFile);
    
  • _CRTDBG_FILE_STDERR
    次のようにリダイレクトできる stderrにメッセージを書き込みます場合:

       freopen( "c:\\log2.txt", "w", stderr);
       _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
       _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
    
       _RPT0(_CRT_ERROR,"1st message\n");
    
  • _CRTDBG_FILE_STDOUT
    ユーザーがリダイレクトできる stdoutにメッセージを書き込みます。

  • _CRTDBG_REPORT_FILE
    現在のレポート モードを返します。

各レポートの種類により使用されるレポート ファイルを個別に制御できます。たとえば _CRT_ASSERT の reportType は、ユーザー定義のファイル ハンドルやストリームに報告されますが、_CRT_ERROR の reportType が stderrに通知されるように指定することがあります。

必要条件

ルーチン

必須ヘッダー

オプション ヘッダー

_CrtSetReportFile

<crtdbg.h>

<errno.h>

コンソールは Windows ストア の apps ではサポートされていません。コンソール、stdin、stdout、および stderrに関連付けられている標準ストリームのハンドルは C のランタイム関数が Windows ストア の apps で使用する前にをリダイレクトする必要があります。互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

ライブラリ:CRT ライブラリの機能 のデバッグ バージョンのみ。

使用例

report」を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

デバッグ ルーチン