_CrtSetReportMode
Specifica la destinazione o le destinazioni per un tipo di report specifico generato da _CrtDbgReport
ed eventuali macro che chiamano _CrtDbgReport
, _CrtDbgReportW
ad esempio_ASSERT
, , _ASSERTE
_ASSERT_EXPR
macro e _RPT
, _RPTF
, _RPTW
_RPTFW
macro (solo versione di debug).
Sintassi
int _CrtSetReportMode(
int reportType,
int reportMode
);
Parametri
reportType
Tipo di segnalazione: _CRT_WARN
, _CRT_ERROR
e _CRT_ASSERT
.
reportMode
Nuova modalità di report o modalità per reportType
.
Valore restituito
Al termine, _CrtSetReportMode
restituisce la precedente o le precedenti modalità di report per il tipo di report specificato in reportType
. Se viene passato un valore non valido come reportType
o viene specificata una modalità non valida per reportMode
, _CrtSetReportMode
richiama il gestore di parametri non validi come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione imposta errno
suEINVAL
e restituisce -1. Per altre informazioni, vedereerrno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Osservazioni:
_CrtSetReportMode
specifica la destinazione di output per _CrtDbgReport
. Poiché le macro _ASSERT
, _ASSERTE
, _RPT
, e _RPTF
chiamano _CrtDbgReport
, _CrtSetReportMode
specifica la destinazione dell'output di testo determinato con queste macro.
Quando _DEBUG
non è definito, le chiamate a _CrtSetReportMode
vengono rimosse durante la pre-elaborazione.
Se non si chiama _CrtSetReportMode
per definire la destinazione di output dei messaggi, vengono applicate le impostazioni predefinite seguenti:
Le asserzioni non riuscite e gli errori di asserzione vengono indirizzati a una finestra di messaggio di debug.
Gli avvisi da applicazioni di Windows vengono inviati alla finestra di output del debugger.
Gli avvisi delle applicazioni console non vengono visualizzati.
Nella tabella seguente sono elencati i tipi di report definiti in Crtdbg.h
.
Tipo di report | Descrizione |
---|---|
_CRT_WARN |
Avvisi, messaggi e informazioni che non richiedono attenzione immediata. |
_CRT_ERROR |
Errori e problemi irreversibili che richiedono attenzione immediata. |
_CRT_ASSERT |
Asserzioni non riuscite (espressioni dichiarate che restituiscono FALSE ). |
La funzione _CrtSetReportMode
assegna la nuova modalità di report specificata in reportMode
al tipo di report specificato in reportType
e restituisce la modalità report definita in precedenza per reportType
. La tabella seguente elenca le scelte disponibili per reportMode
e il comportamento risultante di _CrtDbgReport
. Queste opzioni sono definite flag di bit in Crtdbg.h.
Modalità rapporto | Comportamento _CrtDbgReport |
---|---|
_CRTDBG_MODE_DEBUG |
Scrive il messaggio alla finestra di output del debugger. |
_CRTDBG_MODE_FILE |
Scrive il messaggio a un handle di file specificato dall'utente. _CrtSetReportFile deve essere chiamato per definire il file o il flusso specifico da usare come destinazione. |
_CRTDBG_MODE_WNDW |
Crea una finestra di messaggio per visualizzare il messaggio insieme ai pulsanti Interrompi, Riprova e Ignora . |
_CRTDBG_REPORT_MODE |
Restituisce reportMode per il reportType specificato:1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
Ogni tipo di report può essere riportato tramite uno, due o tre modalità oppure senza modalità. Pertanto, è possibile avere più di una destinazione definita per un singolo tipo di report. Ad esempio, il frammento di codice seguente causa errori di asserzione da essere inviati a una finestra di messaggio di debug e a stderr
:
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
Inoltre, è possibile controllare separatamente la modalità di creazione di report o le modalità per ogni tipo di report. Ad esempio, è possibile specificare che un reportType
di _CRT_WARN
passa a una stringa di debug di output, mentre _CRT_ASSERT
viene visualizzato usando una finestra del messaggio di debug e viene inviato a stderr
, come illustrato in precedenza.
Requisiti
Ciclo | Intestazione obbligatoria | Intestazione facoltativa |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Librerie: esegue il debug solo delle versioni delle librerie di runtime C.