_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 _CrtDbgReportper _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 EINVALe la funzione restituisce _CRTDBG_HFILE_ERROR. Per altre informazioni, vedereerrno, _doserrno, _sys_errliste _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, stdoute stderrdevono 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.

Vedi anche

Routine di debug