共用方式為


_CrtSetReportFile

在指定 _CRTDBG_MODE_FILE之後和 _CrtSetReportMode,您可以指定檔案控制代碼收到訊息文字。 _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

備註

_CrtSetReportFile 用來以 _CrtSetReportMode 函式定義目的或目的 _CrtDbgReport產生的特定報告型別的。 當 _CrtSetReportMode 呼叫指派報告的 _CRTDBG_MODE_FILE 特定報告型別的方式時,應該呼叫 _CrtSetReportFile 所定義的特定檔案或資料流做為目的端。 如果未定義 _DEBUG 時,在前置處理中,對 _CrtSetReportFile 的呼叫中移除。

下表顯示 reportFile 的可用選項清單和 _CrtDbgReport發生的行為。 做為位元在 Crtdbg.h 旗標,這些選項中定義。

  • 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_ERRORreportType 向 stderr報告功能,則為 _CRT_ASSERT ,而 reportType 向使用者自訂的檔案控制代碼或資料流中會報告。

需求

程序

必要的標頭檔

選擇性標頭

_CrtSetReportFile

<crtdbg.h>

<errno.h>

主控台 Windows 市集 應用程式不支援。 標準資料流控制代碼與主控台, stdin, stdout和 stderr,在這種情況下, C 執行階段函式在 Windows 市集 應用程式之前,可以使用它們必須重新導向。 如需詳細資訊,請參閱介紹中的 相容性

程式庫: 僅偵錯 CRT 程式庫功能 版本。

範例

請參閱 report

.NET Framework 對等用法

不適用。若要呼叫標準 C 函式,請使用 PInvoke。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

偵錯常式