_RPT, _RPTF, _RPTW, macros de _RPTFW
Suit la progression d'une application en générant un rapport de débogage (version debug 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 de 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 d' reportTypeet d' format.En outre, ils peuvent également prendre jusqu'à quatre arguments supplémentaires, signifiés par le numéro ajouté au nom de la macro.Par exemple, _RPT0 et _RPTF0 ne prennent pas d'argument supplémentaire, _RPT1 et _RPTF1 prennent arg1, _RPT2 et _RPTF2 prennent arg1 et arg2, et ainsi de suite.
Les macros d' _RPT et d' _RPTF sont semblables à la fonction de 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 qu' printf parce qu'elles n'ont pas besoin d'être insérées dans les instructions d' #ifdef pour les empêcher d'être appelé dans une version commerciale d'une application.Cette souplesse est effectuée à l'aide de la macro de _DEBUG ; les macros d' _RPT et d' _RPTF sont uniquement disponibles si la balise d' _DEBUG est définie.Lorsque _DEBUG n'est pas défini, les appels à ces macros sont supprimés pendant le prétraitement.
Les macros d' _RPTW et d' _RPTFW sont des versions à caractère élargi de ces macros.ils sont comme wprintf et prennent des chaînes à caractères larges comme arguments.
Les macros d' _RPT appelle la fonction de _CrtDbgReport pour générer un rapport de débogage avec un message utilisateur.Les macros d' _RPTW appelle la fonction d' _CrtDbgReportW pour générer le même état avec des caractères larges.Les macros d' _RPTF et d' _RPTFW créent un rapport de débogage avec le fichier source et le numéro de ligne où la macro d'état a été appelée, en plus de le message utilisateur.Le message utilisateur est créé en substituant les arguments d' arg[]ndans la chaîne d' format , en utilisant les mêmes règles définies par la fonction de printf .
_CrtDbgReport ou _CrtDbgReportW génère le rapport de débogage et détermine ses destinations selon les vues de Rapport et le fichier actuels définis pour reportType.Les fonctions de _CrtSetReportMode et de _CrtSetReportFile sont utilisées pour définir des destinations pour chaque type de rapport.
Si une macro d' _RPT est appelée et qu' _CrtSetReportMode ni _CrtSetReportFile n'a été appelé, les messages sont affichés comme suit.
Type de rapport |
destination de sortie |
---|---|
_CRT_WARN |
le texte d'avertissement n'est pas affiché. |
_CRT_ERROR |
Une fenêtre indépendante.La même manière que _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); avait été spécifié. |
_CRT_ASSERT |
Identique à _CRT_ERROR. |
Lorsque la destination est une fenêtre de messages de débogage et l'utilisateur choisit le bouton de Réessayer , _CrtDbgReport ou _CrtDbgReportW retourne 1, rendant pour démarrer ces macros le débogueur, à condition que le débogage juste-à-temps (JIT) est activé.Pour plus d'informations sur l'utilisation de ces macros comme un mécanisme de gestion des erreurs d'erreur de débogage, consultez À l'aide de les 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 de _ASSERT génère un rapport, mais uniquement lorsque son argument d'expression prend la valeur FALSE._ASSERTE est exactement à appeler _ASSERT, mais inclut l'expression dans le rapport généré.
Configuration requise
Macro |
en-tête requis |
---|---|
macros d'_RPT |
<crtdbg.h> |
macros d'_RPTF |
<crtdbg.h> |
macros d'_RPTW |
<crtdbg.h> |
macros d'_RPTFW |
<crtdbg.h> |
Pour plus d'informations de compatibilité, consultez compatibilité dans l'introduction.
bibliothèques
Versions debug de Bibliothèques runtime C uniquement.
Bien qu'il s'agisse de macros et être obtenues en incluant Crtdbg.h, l'application doit être liée à l'une des bibliothèques de débogage parce que ces macros appellent d'autres fonctions runtime.
Exemple
Consultez l'exemple illustré dans la rubrique de _ASSERT .
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.