_CrtSetReportFile
Dopo avere specificato _CRTDBG_MODE_FILEcon _CrtSetReportMode, è possibile specificare un handle di file per ricevere il testo del messaggio._CrtSetReportFile viene utilizzato da _CrtDbgReport, _CrtDbgReportW per specificare la destinazione di testo (versione di debug solo).
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Parametri
reportType
Tipo di rapporto: _CRT_WARN, _CRT_ERRORe _CRT_ASSERT.reportFile
Nuovo file di report per reportType.
Valore restituito
Al termine, _CrtSetReportFile restituisce il file di report precedente definito per il tipo di report specificato in reportType.Se un valore non valido viene passato per reportType, chiamare questa funzione del gestore non valido di parametro, come descritto in Convalida dei parametri.Se l'esecuzione può continuare, errno viene impostato su EINVAL e la funzione restituisce _CRTDBG_HFILE_ERROR.Per ulteriori informazioni, vedere errno, _doserrno, _sys_errlist e _sys_nerr.
Note
_CrtSetReportFile utilizzato con la funzione di _CrtSetReportMode per definire la destinazione o le destinazioni di un tipo di report specifico generato da _CrtDbgReport.Quando _CrtSetReportMode è stato chiamato per assegnare _CRTDBG_MODE_FILE che indica la modalità per un tipo di report specifico, _CrtSetReportFile deve quindi essere chiamato per definire il file o un flusso specifico da utilizzare come destinazione.Quando _DEBUG non è definito, le chiamate a _CrtSetReportFile vengono rimosse durante la pre-elaborazione.
Nella tabella seguente viene mostrato un elenco di scelte disponibili per reportFile e il comportamento risultante di _CrtDbgReport.Queste opzioni sono definite come flag di bit in Crtdbg.h.
file handle
Handle del file che sarà la destinazione dei messaggi.Viene eseguito alcun tentativo di verificare la validità di handle.È necessario aprire e chiudere l'handle del file.Ad esempio: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
Scrivere il messaggio in stderr, che possono essere reindirizzati come segue: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
Scrivere il messaggio in stdout, che è possibile reindirizzare._CRTDBG_REPORT_FILE
Restituisce la modalità rapporto corrente.
Il file di report utilizzato da ogni tipo di rapporto può essere archiviato separatamente.Ad esempio, è possibile specificare che reportType di _CRT_ERROR viene segnalato a stderr, mentre reportType di _CRT_ASSERT viene riportato all'handle di file o un flusso definite dall'utente.
Requisiti
Routine |
Intestazione obbligatoria |
Intestazione facoltativa |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> |
<errno.h> |
La console non è supportata nelle applicazioni di Windows Store.L'handle standard del flusso associate alla console, stdin, stdoute stderr, devono essere reindirizzati prima di funzioni di runtime del linguaggio C possono essere utilizzate nelle applicazioni di Windows Store.Per ulteriori informazioni sulla compatibilità, vedere Compatibilità.
Librerie: Versioni di debug solo di Funzionalità della libreria CRT.
Esempio
Vedere report.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.