Funzioni hook per la creazione di rapporti
Le informazioni contenute in questo argomento sono valide per:
Edizione |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Solo nativo |
||||
Pro, Premium e Ultimate |
Solo nativo |
Una funzione hook per la creazione di report, installata mediante _CrtSetReportHook, viene chiamata ogni volta che _CrtDbgReport genera un report di debug. È possibile utilizzare tale funzione, ad esempio, per filtrare i report in modo da concentrarsi su tipi specifici di allocazioni. Una funzione hook per la creazione di report deve avere un prototipo analogo al seguente:
int YourReportHook(int nRptType, char *szMsg, int *retVal);
Il puntatore che viene passato a _CrtSetReportHook è del tipo _CRT_REPORT_HOOK, come definito in CRTDBG.H:
typedef int (__cdecl *_CRT_REPORT_HOOK)(int, char *, int *);
Quando la libreria di runtime chiama la funzione hook, l'argomento nRptType contiene la categoria del report (_CRT_WARN, _CRT_ERROR o _CRT_ASSERT), szMsg contiene un puntatore a una stringa di messaggio di report completa e retVal specifica se _CrtDbgReport debba continuare la normale esecuzione dopo la generazione del report o avviare invece il debugger (se retVal ha valore zero l'esecuzione continua, se ha valore 1 viene avviato il debugger).
Se la funzione hook gestisce il messaggio in questione completamente, in modo che non sia necessario alcun report ulteriore, deve restituire TRUE. Se restituisce FALSE, _CrtDbgReport visualizzerà il messaggio normalmente.
Vedere anche
Attività
Esempio crt_dbg2: funzioni hook di debug del runtime del linguaggio C