Condividi tramite


_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.

Vedere anche

Riferimenti

Procedura di debug