共用方式為


報告攔截函式

這個主題適用於:

版本

Visual Basic

C#

F#

C++

Web Developer

Express

標題不適用於 標題不適用於 標題不適用於

僅適用原生

標題不適用於

Pro、Premium 和 Ultimate

標題不適用於 標題不適用於 標題不適用於

僅適用原生

標題不適用於

報告攔截函式,使用 _CrtSetReportHook 安裝,會在每次 _CrtDbgReport 產生偵錯報告時呼叫。 除此之外,您可以使用它來篩選報告以專注於特定類型的配置。 報告攔截函式應該有像下列的原型:

int YourReportHook(int nRptType, char *szMsg, int *retVal);

您傳入至 _CrtSetReportHook 的指標是在 CRTDBG.H 裡 _CRT_REPORT_HOOK 定義的類型:

typedef int (__cdecl *_CRT_REPORT_HOOK)(int, char *, int *);

當執行階段程式庫呼叫攔截函式時,nRptType 引數包含報告的分類 (_CRT_WARN_CRT_ERROR_CRT_ASSERT),szMsg 包含完整重組報告訊息字串的指標,而 retVal 指定 _CrtDbgReport 是否應該在產生報告或啟動偵錯工具繼續照常執行 (retVal 值為零時會繼續執行,值為 1 時會啟動偵錯工具)。

如果攔截能完整處理該訊息,而不需要進一步的報告,它應該就會傳回 TRUE。 如果它傳回的是 FALSE_CrtDbgReport 會以一般方式報告訊息。

請參閱

工作

crt_dbg2 範例:C 執行階段偵錯攔截函式

其他資源

撰寫偵錯攔截函式