_RPT, _RPTF, _RPTW, _RPTFW macros

Realiza el seguimiento del progreso de la aplicación generando un informe de depuración (únicamente una versión de depuración). El n sufijo especifica el número de argumentos de argsy puede ser 0, 1, 2, 3, 4 o 5.

Sintaxis

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

Parámetros

reportType
Tipo de informe: _CRT_WARN, _CRT_ERROR o _CRT_ASSERT.

format
Cadena de control de formato usada para crear el mensaje de usuario.

args
Argumentos de sustitución usados por format.

Comentarios

Todas estas macros toman los reportType parámetros y format . Además, también pueden tomar hasta cuatro argumentos más, indicados por el número anexado al nombre de la macro. Por ejemplo, _RPT0 y _RPTF0 no toman más argumentos, _RPT1 y _RPTF1 toman arg1, _RPT2 y toman arg1 y arg2_RPTF2 , etc.

Las _RPT macros y _RPTF son similares a la printf función , ya que se pueden usar para realizar un seguimiento del 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 incluirlas en instrucciones #ifdef para evitar que se llamen en una compilación comercial de una aplicación. Esta flexibilidad se logra mediante la _DEBUG macro; las _RPT macros y _RPTF solo están disponibles cuando se define la _DEBUG marca. Cuando no se define _DEBUG, las llamadas a estas macros se quitan durante el preprocesamiento.

Las macros _RPTW y _RPTFW son versiones de caracteres anchos de estas macros. Son como wprintf y toman las cadenas de caracteres anchos como argumentos.

Las _RPT macros llaman a la _CrtDbgReport función para generar un informe de depuración con un mensaje de usuario. Las macros _RPTW llaman a la función _CrtDbgReportW para generar el mismo informe con caracteres anchos. Las macros _RPTF y _RPTFW crean un informe de depuración con el archivo de origen y el número de línea donde se llamó a la macro del informe, además del mensaje de usuario. El mensaje de usuario se crea sustituyendo los arg[n] argumentos en la format cadena mediante las mismas reglas definidas por la printf función .

_CrtDbgReport o _CrtDbgReportW genera el informe de depuración y determina sus destinos en función de los modos de informe actuales y del archivo definido para reportType. Las funciones _CrtSetReportMode y _CrtSetReportFile se usan para definir los destinos de cada tipo de informe.

Si se llama a una _RPT macro y _CrtSetReportMode _CrtSetReportFile no se ha llamado a , los mensajes se muestran de la siguiente manera:

Tipo de informe Destino de salida
_CRT_WARN No se muestra el texto de advertencia.
_CRT_ERROR Ventana emergente. Lo mismo que si se hubiera especificado _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW);.
_CRT_ASSERT Igual que _CRT_ERROR.

Cuando el destino es una ventana de mensaje de depuración y el usuario elige el botón _CrtDbgReport Reintentar o _CrtDbgReportW devuelve 1. Este valor devuelto hace que estas macros inicien el depurador, si la depuración Just-In-Time (JIT) está habilitada. Para obtener más información sobre el uso de estas macros como mecanismo de control de errores de depuración, consulte Macros para informes.

Existen otras dos macros que generan un informe de depuración. La _ASSERT macro genera un informe, pero solo cuando su argumento de expresión se evalúa como FALSE. _ASSERTE es exactamente igual _ASSERTque , pero incluye la expresión con errores en el informe generado.

Requisitos

Macro Encabezado necesario
_RPT macros <crtdbg.h>
_RPTF macros <crtdbg.h>
_RPTW macros <crtdbg.h>
_RPTFW macros <crtdbg.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Bibliotecas

Solo versiones de depuración de las bibliotecas en tiempo de ejecución de C.

Aunque estas macros están disponibles cuando se incluye crtdbg.h, para ejecutarse, la aplicación debe vincularse con una de las bibliotecas de depuración, ya que estas macros llaman a otras funciones en tiempo de ejecución.

Ejemplo

Consulte el ejemplo del _ASSERT artículo.

Consulte también

Rutinas de depuración