Partager via


_RPT, _RPTF, _RPTW, _RPTFW, macros

Suit le progrès d'une application en générant un rapport de débogage (version de débogage uniquement). Notez que n spécifie le nombre d'arguments dans args et peut être 0, 1, 2, 3, 4 ou 5.

_RPTn( 
   reportType,
   format,
...[args]
); 
_RPTFn( 
   reportType,
   format,
   [args]
); 
_RPTWn( 
   reportType,
   format 
   [args]
); 
_RPTFWn( 
   reportType,
   format 
   [args]
);

Paramètres

  • reportType
    Type du rapport : _CRT_WARN, _CRT_ERROR, ou _CRT_ASSERT.

  • format
    Chaîne de contrôle de format utilisée pour créer le message utilisateur.

  • args
    Arguments de substitution utilisés par format.

Notes

Toutes ces macros prennent les paramètres reportTypeet format. En outre, ils peuvent également prendre jusqu'à quatre arguments supplémentaires, signifiés par le nombre ajouté au nom de macros. Par exemple, _RPT0 et _RPTF0 ne prennent aucun argument supplémentaire, _RPT1 et _RPTF1 prennent arg1, _RPT2 et _RPTF2 prennent arg1 et arg2, et ainsi de suite.

Les macros _RPT et _RPTF sont similaires à la fonction printf, car elles peuvent être utilisées pour suivre la progression d'une application pendant le processus de débogage. Toutefois, ces macros sont plus flexibles que printf car elles n'ont pas besoin d'être mises entre les instructions #ifdef pour les empêcher d'être appelées dans une version commerciale d'une application. Cette flexibilité est réalisée à l'aide de la macro _DEBUG ; les macros _RPT et _RPTF sont disponibles uniquement lorsque l'indicateur _DEBUG est défini. Lorsque _DEBUG n'est pas défini, les appels à ces macros sont supprimés pendant le prétraitement.

Les macros _RPTW et _RPTFW sont des versions à caractères larges de ces macros. Ils sont similaires à wprintf et prennent des chaînes de caractères larges comme arguments.

Les macros _RPT appellent la fonction _CrtDbgReport pour générer un rapport de débogage avec un message utilisateur. Les macros**_RPTW** appellent la fonction _CrtDbgReportW pour générer le même rapport avec des caractères larges. Les macros _RPTF et _RPTFW créent un rapport de débogage avec le fichier source et le numéro de ligne où la macro de rapport a été appelée, en plus du message utilisateur. Le message utilisateur est créé en remplaçant les arguments arg[n] dans la chaîne format, à l'aide des mêmes règles définies par la fonction printf.

_CrtDbgReport ou _CrtDbgReportW génère le rapport de débogage et détermine ses destinations selon les modes Rapport actuels et le fichier défini pour reportType. Les fonctions _CrtSetReportMode et _CrtSetReportFile sont utilisées pour définir les destinations de chaque type de rapport.

Si une macro _RPT est appelée et si ni _CrtSetReportMode ni _CrtSetReportFile n'a été appelé, les messages sont affichés comme suit.

Rapport type

Destination de sortie

_CRT_WARN

Le texte d'avertissement n'est pas affiché.

_CRT_ERROR

Une fenêtre de menu contextuel Comme si _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); avait été spécifié.

_CRT_ASSERT

Identique à _CRT_ERROR.

Lorsque la destination est une fenêtre comportant un message de débogage et que l'utilisateur choisit le bouton Réessayer, _CrtDbgReport ou _CrtDbgReportW retourne 1, ce qui force ces macros à démarrer, pourvu que le déboguage just-in-time (JIT) soit autorisé. Pour plus d'informations sur l'utilisation de macros comme mécanisme de gestion d'erreur de débogage, consultez Utilisation de macros pour la vérification et la création de rapports.

Deux autres macros existent qui génèrent un rapport de débogage. La macro _ASSERT génère un rapport, mais uniquement lorsque l'argument de l'expression donne FALSE. _ASSERTE est exactement comme _ASSERT, mais inclut l'expression qui a échoué dans le rapport généré.

Configuration requise

Macro

En-tête requis

_RPT macros

<crtdbg.h>

_RPTF macros

<crtdbg.h>

_RPTW macros

<crtdbg.h>

_RPTFW macros

<crtdbg.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Bibliothèques

Seulement les versions debug des bibliothèques Runtime C.

Bien que celles-ci soient des macros et soient obtenues en incluant Crtdbg.h, l'application doit se lier avec l'une des bibliothèques de débogage car ces macros appellent d'autres fonctions run-time.

Exemple

Consultez l'exemple dans la rubrique _ASSERT.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Voir aussi

Référence

Routines de débogage