_CrtSetReportFile
Dopo avere utilizzato _CrtSetReportMode per specificare _CRTDBG_MODE_FILE, è possibile specificare un gestore di file per ricevere il testo del messaggio. _CrtSetReportFile viene anche utilizzato da _CrtDbgReport, _CrtDbgReportW per specificare la destinazione del testo (versione di debug solo).
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Parametri
reportType
Tipo di rapporto: _CRT_WARN, _CRT_ERROR e _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 rapporto specificato in reportType. Se un valore non valido viene passato in reportType, questa funzione chiama il 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, and _sys_nerr.
Note
_CrtSetReportFile è utilizzato con la funzione _CrtSetReportMode per definire la destinazione o le destinazioni per un tipo di report specifico generato da _CrtDbgReport. Quando _CrtSetReportMode viene chiamato per assegnare il modo di rapporto _CRTDBG_MODE_FILE per un tipo specifico di report, _CrtSetReportFile deve quindi essere chiamato per definire il file o il flusso specifico da utilizzare come destinazione. Quando _DEBUG non è definito, le chiamate a _CrtSetReportFile vengono rimosse durante la pre-elaborazione.
Nella tabella seguente sono elencate le opzioni disponibili per reportFile e il comportamento risultante di _CrtDbgReport. Queste opzioni sono definite come flag di bit in Crtdbg.h.
file handle
Un punto di controllo del file che sarà la destinazione dei messaggi. Non viene eseguito alcun tentativo di verificare la validità del punto di controllo. È necessario aprire e chiudere il punto di controllo 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
Scrive il messaggio a stderr, che può essere reindirizzato 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
Scrive il messaggio a stdout, che è possibile reindirizzare._CRTDBG_REPORT_FILE
Restituisce la modalità di report corrente.
Il file di report utilizzato da ogni tipo di rapporto può essere controllato separatamente. Ad esempio, è possibile specificare che un reportType di _CRT_ERROR venga restituito a stderr, mentre un reportType di _CRT_ASSERT venga riportato al punto di controllo del file o al flusso definiti dall'utente.
Requisiti
Routine |
Intestazione obbligatoria |
Intestazione facoltativa |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> |
<errno.h> |
La console non è supportata nelle applicazioni Windows Store. Gli handle del flusso standard associati alla console,stdin, stdout e stderr, devono essere reindirizzati prima di poter utilizzare le funzioni di runtime del linguaggio C nelle applicazioni Windows Store. Per ulteriori informazioni di compatibilità, vedere Compatibilità.
Librerie: Versioni di debug solo di Funzionalità libreria CRT.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di platform invoke.