_CrtSetReportFile
Dopo aver usato _CrtSetReportMode
per specificare _CRTDBG_MODE_FILE
, è possibile specificare l'handle di file per ricevere il testo del messaggio. _CrtSetReportFile
viene usato anche da _CrtDbgReport
per _CrtDbgReportW
specificare la destinazione del testo (solo versione di debug).
Sintassi
_HFILE _CrtSetReportFile(
int reportType,
_HFILE reportFile
);
Parametri
reportType
Tipo di segnalazione: _CRT_WARN
, _CRT_ERROR
e _CRT_ASSERT
.
reportFile
Nuovo file di report per reportType
.
Valore restituito
Al termine, _CrtSetReportFile
restituisce il precedente file di report definito per il tipo di report specificato in reportType
. Se per viene passato un valore non valido per reportType
, questa funzione richiama il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno
è impostata su EINVAL
e la funzione restituisce _CRTDBG_HFILE_ERROR
. Per altre informazioni, vedereerrno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
_CrtSetReportFile
viene usato con la _CrtSetReportMode
funzione per definire la destinazione o le destinazioni per un tipo di report specifico generato da _CrtDbgReport
. Quando si chiama _CrtSetReportMode
per assegnare la _CRTDBG_MODE_FILE
modalità di creazione report per un tipo di report specifico, chiamare _CrtSetReportFile
anche per specificare il file o il flusso di destinazione. Quando _DEBUG
non è definito, le chiamate a _CrtSetReportFile
vengono rimosse durante la pre-elaborazione.
L'elenco seguente mostra le opzioni disponibili per reportFile
e il comportamento risultante di _CrtDbgReport
. Queste opzioni sono definite flag di bit in Crtdbg.h.
handle di file
Handle di file che sarà la destinazione dei messaggi. Non è stato eseguito nessun tentativo per verificare la validità dell'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
Scrive un messaggio a
stderr
, che può essere reindirizzato nel modo seguente: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 un messaggio a
stdout
, che è possibile reindirizzare._CRTDBG_REPORT_FILE
Restituisce la modalità di report corrente.
È possibile controllare il file di report utilizzato da ogni tipo di report separatamente. Ad esempio, è possibile specificare che un reportType
di report tramite stderr
, mentre un reportType
di _CRT_ASSERT
report tramite un handle o un flusso di file definito _CRT_ERROR
dall'utente.
Requisiti
Ciclo | Intestazione obbligatoria | Intestazione facoltativa |
---|---|---|
_CrtSetReportFile |
<crtdbg.h> | <errno.h> |
La console non è supportata nelle app piattaforma UWP (Universal Windows Platform) (UWP). Gli handle di flusso standard associati alla console, stdin
, stdout
e stderr
devono essere reindirizzati prima che le funzioni di runtime C possano usarle nelle app UWP. Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Librerie: eseguire il debug solo delle versioni delle funzionalità della libreria CRT.