_CrtSetReportMode
Spécifie la destination ou les destinations d’un type de rapport spécifique généré par _CrtDbgReport
et toutes les macros qui appellent_CrtDbgReport
, _CrtDbgReportW
telles que _ASSERT
, _ASSERTE
, _ASSERT_EXPR
macros et _RPT
, _RPTF
, _RPTW
_RPTFW
macros (version de débogage uniquement).
Syntaxe
int _CrtSetReportMode(
int reportType,
int reportMode
);
Paramètres
reportType
Type de rapport : _CRT_WARN
, _CRT_ERROR
et _CRT_ASSERT
.
reportMode
Nouveau(x) mode(s) de rapport pour reportType
.
Valeur retournée
Quand l’opération réussit, _CrtSetReportMode
retourne le(s) mode(s) de rapport précédent(s) pour le type de rapport spécifié dans reportType
. Si une valeur non valide est passée en tant que reportType
ou en mode non valide est spécifiée pour reportMode
, _CrtSetReportMode
appelle le gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, cette fonction affecte à errno
la valeur EINVAL
et retourne -1. Pour plus d'informations, voir errno
, _doserrno
, _sys_errlist
et _sys_nerr
.
Notes
_CrtSetReportMode
spécifie la destination de sortie pour _CrtDbgReport
. Étant donné que les macros _ASSERT
, _ASSERTE
, _RPT
et _RPTF
appellent _CrtDbgReport
, _CrtSetReportMode
spécifie la destination de sortie du texte spécifié avec ces macros.
Quand _DEBUG
n’est pas défini, les appels à _CrtSetReportMode
sont supprimés lors du prétraitement.
Si vous n’appelez _CrtSetReportMode
pas pour définir la destination de sortie des messages, les valeurs par défaut suivantes sont en vigueur :
Les erreurs et les échecs d’assertion sont dirigés vers une fenêtre de message de débogage.
Les avertissements émanant des applications Windows sont envoyés à la fenêtre de sortie du débogueur.
Les avertissements des applications console ne sont pas affichés.
Le tableau suivant répertorie les types de rapports définis dans Crtdbg.h
.
Type de rapport | Description |
---|---|
_CRT_WARN |
Avertissements, messages et informations qui n’ont pas besoin d’une attention immédiate. |
_CRT_ERROR |
Erreurs, problèmes irrécupérables et problèmes qui requièrent une attention immédiate. |
_CRT_ASSERT |
Échecs d’assertion (expressions déclarées évaluées à FALSE ). |
La fonction _CrtSetReportMode
assigne le nouveau mode de rapport spécifié dans reportMode
au type de rapport spécifié dans reportType
et retourne le mode de rapport défini pour reportType
. Le tableau suivant répertorie les options disponibles pour reportMode
et le comportement résultant de _CrtDbgReport
. Ces options sont définies sous forme d’indicateurs binaires dans Crtdbg.h.
Mode de rapport | Comportement de _CrtDbgReport |
---|---|
_CRTDBG_MODE_DEBUG |
Écrit le message dans la fenêtre de sortie du débogueur. |
_CRTDBG_MODE_FILE |
Écrit le message dans un handle de fichier fourni par l’utilisateur. _CrtSetReportFile doit être appelé pour définir le fichier ou le flux spécifique à utiliser comme destination. |
_CRTDBG_MODE_WNDW |
Crée une zone de message pour afficher le message avec les boutons Abandonner, Réessayer et Ignorer . |
_CRTDBG_REPORT_MODE |
Retourne reportMode pour le reportType spécifié :1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
Chaque type de rapport peut être signalé à l’aide d’un, deux ou trois modes ou sans aucun mode. Par conséquent, il est possible d’avoir plusieurs destinations définies pour un type de rapport unique. Par exemple, le fragment de code suivant envoie les échecs d’assertion à une fenêtre de message de débogage et à stderr
:
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
En outre, vous pouvez contrôler le mode de création de rapports ou les modes pour chaque type de rapport séparément. Par exemple, il est possible de spécifier qu’une reportType
chaîne _CRT_ASSERT
de _CRT_WARN
débogage de sortie est affichée à l’aide d’une fenêtre de message de débogage et envoyée à stderr
, comme illustré précédemment.
Spécifications
Routine | En-tête requis | En-tête facultatif |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Bibliothèques : uniquement les versions de débogage des bibliothèques Runtime C.