共用方式為


_CrtSetReportHook

您可以安裝一個客戶報告函示藉由將它安裝在 C 執行時間偵錯報告階段 (僅偵錯版本) 上。

_CRT_REPORT_HOOK _CrtSetReportHook( 
   _CRT_REPORT_HOOK reportHook 
);

參數

  • reportHook
    加入用戶端定義報告函式連結至 C 執行階段偵錯報告流程。

傳回值

傳回目前的用戶端定義報告函式。

備註

_CrtSetReportHook 可讓應用程式使用其報告函式進入 C 執行階段的偵錯程式庫報告流程。 因此,每當 _CrtDbgReport 呼叫產生偵錯報告,應用程式的報告函式會先呼叫。 這項功能可讓應用程式執行作業,例如篩選偵錯回報使用,因此它可以專注於特定配置類型或傳送報告到目的地,在_CrtDbgReport無法使用。 如果未定義 _DEBUG,在前置處理中,對 _CrtSetReportHook 的呼叫將被移除。

如需 _CrtSetReportHook更健全的版本,請參閱 _CrtSetReportHook2

_CrtSetReportHook 函式安裝在 reportHook 所指定的新用戶端定義的報告函式並傳回前用戶端定義的連結。 下列範例示範一個用戶端定義的報告攔截應該如何變為原型:

int YourReportHook( int reportType, char *message, int *returnValue );

若 reportType 為偵錯報告型別 (_CRT_WARN、 _CRT_ERROR或 _CRT_ASSERT), message 是完全載入組件的偵錯在報告中包含的使用者訊息,且 returnValue 應該是由 _CrtDbgReport傳回的用戶端定義的報告函式中所指定的值。 如需可用報告資料型別的完整說明,請參閱 _CrtSetReportMode 函式。

如果用戶端定義的報告函式完成處理偵錯訊息這類不需要進一步的報告,則函式會傳回 TRUE。 當函式傳回 FALSE時,_CrtDbgReport 會使用報告類型、模式和檔案的目前設定 呼叫產生偵錯報告。 此外,您可以指定 _CrtDbgReport 傳回 returnValue物件,應用程式也可以控制偵錯中斷是否發生。 如需完整說明如何設定偵錯報告並產生,請參閱 _CrtSetReportFile、 _CrtSetReportMode和 _CrtDbgReport。

如需使用其他攔截功能的執行階段函式,以及撰寫自己的用戶端定義攔截函式的詳細資訊,請參閱 撰寫偵錯攔截函式

注意事項注意事項

如果您的應用程式是 /clr 編譯的,並在應用程式結束主要函式之後回報函式呼叫, CLR 將會擲回例外狀況,如果報告函式呼叫任何 CRT 函式。

需求

常式

必要的標頭

_CrtSetReportHook

<crtdbg.h>

如需更多關於相容性的資訊,請參閱入門介紹中的 相容性 (Compatibility)

程式庫

C run-time libraries 版本的偵錯

.NET Framework 對等用法

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

請參閱

參考

偵錯常式

_CrtGetReportHook