_RPT, _RPTF, _RPTW, _RPTFW (Macros)
Realiza el seguimiento del progreso de una aplicación genera un informe de depuración (versión de depuración solo). Observe que n especifica el número de argumentos en args y puede ser 0, 1, 2, 3, 4, 5.
_RPTn(
reportType,
format,
...[args]
);
_RPTFn(
reportType,
format,
[args]
);
_RPTWn(
reportType,
format
[args]
);
_RPTFWn(
reportType,
format
[args]
);
Parámetros
reportType
Informe tipo: _CRT_WARN, _CRT_ERROR, o _CRT_ASSERT.format
Cadena de la Formato- CONTROL utilizada para crear el mensaje de usuario.args
Argumentos de sustitución utilizados por format.
Comentarios
Todas estas macros toman los parámetrosde reportTypeyde format. Además, también aceptan hasta cuatro argumentos adicionales, significados por el número anexado al nombre de la macro. Por ejemplo, _RPT0 y _RPTF0 no toman ningún argumento adicional, _RPT1 y _RPTF1 toma arg1, _RPT2 y _RPTF2 toma arg1 y arg2, etc.
Las macros de _RPT y de _RPTF son similares a la función de printf , porque se pueden utilizar para seguir el progreso de una aplicación durante el proceso de depuración. Sin embargo, estas macros son más flexibles que printf porque no es necesario encerrar en las instrucciones de #ifdef para evitar que se muestran en una compilación comercial de una aplicación. Esta flexibilidad se logra mediante la macro de _DEBUG ; las macros de _RPT y de _RPTF sólo están disponibles cuando se define la marca de _DEBUG . Cuando _DEBUG no está definido, las llamadas a estas macros se quitan durante el preprocesamiento.
Las macros de _RPTW y de _RPTFW son versiones de caracteres anchos de estas macros. Son los wprintf y tome las cadenas de caracteres como argumentos.
Las macros de _RPT llaman a la función de _CrtDbgReport para generar un informe de depuración con un mensaje de usuario. Las macros de _RPTW llaman a la función de _CrtDbgReportW para generar el mismo informe con los caracteres anchos. Las macros de _RPTF y de _RPTFW crean un informe de depuración con el archivo de código fuente y el número de línea donde la macro de informe se llamó, además del mensaje de usuario. El mensaje de usuario crea sustituyendo los argumentos de arg[n] en la cadena de format , utilizando las mismas reglas definidas por la función de printf .
_CrtDbgReport o _CrtDbgReportW genera el informe de depuración y determina los destinos basándose en los modos de informe y el archivo actuales definidos para reportType. Las funciones de _CrtSetReportMode y de _CrtSetReportFile se utilizan para definir los destinos para cada tipo de informe.
Si se llama a una macro de _RPT y no se ha llamado a _CrtSetReportMode ni _CrtSetReportFile , los mensajes se muestran como sigue.
Tipo de informe |
Destino de salida |
---|---|
_CRT_WARN |
El texto de advertencia no se muestra. |
_CRT_ERROR |
Una ventana emergente. Igual que si _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); se hubiera especificado. |
_CRT_ASSERT |
Igual que _CRT_ERROR. |
Cuando el destino es una ventana de mensajes de depuración y el usuario elija el botón de Reintentar , _CrtDbgReport o _CrtDbgReportW devuelve 1, haciendo que estas macros enciendan el depurador, siempre que está habilitada la depuración just-in-time de (JIT). Para obtener más información sobre cómo utilizar estas macros como mecanismo de control de errores de la depuración, vea Utilizando las macros para comprobación e informes.
Otras dos macros existen que generan un informe de depuración. La macro de _ASSERT genera un informe, pero únicamente cuando el argumento de la expresión se evalúa como FALSE. _ASSERTE es exactamente igual _ASSERT, pero incluye la expresión incorrectos en el informe generado.
Requisitos
Macro |
Encabezado necesario |
---|---|
macros de_RPT |
<crtdbg.h> |
macros de_RPTF |
<crtdbg.h> |
macros de_RPTW |
<crtdbg.h> |
macros de_RPTFW |
<crtdbg.h> |
Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.
Bibliotecas
Solo las versiones de depuración de las bibliotecas en tiempo de ejecución de C.
Aunque se trata de macros y son obtenidas incluye Crtdbg.h, la aplicación debe vincularse a una de las bibliotecas de depuración porque estas macros llaman a otras funciones en tiempo de ejecución.
Ejemplo
Vea el ejemplo del tema de _ASSERT .
Equivalente en .NET Framework
No es aplicable Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.