_CrtSetReportMode
Especifica el destino de un tipo de informe específico generado por _CrtDbgReport y cualquier macro que llame a _CrtDbgReport, _CrtDbgReportW, por ejemplo _ASSERT, _ASSERTE (Macros), _ASSERT, _ASSERTE (Macros), _RPT, _RPTF, _RPTW, _RPTFW (Macros) y _RPT, _RPTF, _RPTW, _RPTFW (Macros) (solo versión de depuración).
int _CrtSetReportMode(
int reportType,
int reportMode
);
Parámetros
reportType
Tipo de informe: _CRT_WARN, _CRT_ERROR y _CRT_ASSERT.reportMode
Nuevo modo de informe para reportType.
Valor devuelto
Cuando se finaliza correctamente, _CrtSetReportMode devuelve el modo de informe anterior para el tipo de informe especificado en reportType. Si se pasa un valor no válido como reportType o se especifica un modo no válido para reportMode, _CrtSetReportMode invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, esta función establece errno en EINVAL y devuelve -1. Para obtener más información, vea errno, _doserrno, _sys_errlist y _sys_nerr.
Comentarios
_CrtSetReportMode especifica el destino de salida para _CrtDbgReport. Dado que las macros _ASSERT, _ASSERTE, _RPT y _CrtDbgReport llaman a _CrtSetReportMode, _RPTF especifica el destino de salida de texto especificado con las macros.
Cuando _DEBUG no se define, las llamadas a _CrtSetReportMode se quitan durante el preprocesamiento.
Si no llama a _CrtSetReportMode para definir el destino de salida de los mensajes, los valores predeterminados siguientes son los activos:
Los errores de aserción y los demás errores se dirigen a una ventana de mensajes de depuración.
Las advertencias de las aplicaciones se Windows se envían a la ventana de salida del depurador.
Las advertencias de las aplicaciones de consola no se muestran.
En la tabla siguiente se enumeran los tipos de informe definidos en Crtdbg.h.
Tipo de informe |
Descripción |
---|---|
_CRT_WARN |
Advertencias, mensajes e información que no requieren atención inmediata. |
_CRT_ERROR |
Errores, problemas irrecuperables y problemas que requieren atención inmediata. |
_CRT_ASSERT |
Errores de aserción (expresiones declaradas que se evalúan como FALSE). |
La función _CrtSetReportMode asigna el nuevo modo de informe especificado en reportMode al tipo de informe especificado en reportType y devuelve el modo de informe previamente definido para reportType. En la tabla siguiente se enumeran las opciones disponibles para reportMode y el comportamiento resultante de _CrtDbgReport. Estas opciones se definen como marcas de bits en Crtdbg.h.
Modo de informe |
Comportamiento de _CrtDbgReport |
---|---|
_CRTDBG_MODE_DEBUG |
Escribe el mensaje en la ventana de salida del depurador. |
_CRTDBG_MODE_FILE |
Escribe el mensaje en un identificador de archivos proporcionado por el usuario. Es necesario llamar a _CrtSetReportFile para definir el archivo o flujo concreto que se debe usar como destino. |
_CRTDBG_MODE_WNDW |
Crea un cuadro de mensaje para mostrar el mensaje junto con los botones Abort, Retry e Ignore. |
_CRTDBG_REPORT_MODE |
Devuelve reportMode correspondiente al objeto reportType especificado: 1 _CRTDBG_MODE_FILE 2 _CRTDBG_MODE_DEBUG 4 _CRTDBG_MODE_WNDW |
Cada tipo de informe se puede designar mediante uno, dos o tres modos, o sin ningún modo. Por consiguiente, es posible tener más de un destino definido para un único tipo de informe. Por ejemplo, el fragmento de código siguiente hace que se envíen errores de aserción a una ventana de mensajes de depuración y a stderr:
_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_WNDW );
_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDERR );
Además, el modo o los modos de informe de cada tipo de informe se pueden controlar por separado. Por ejemplo, se puede especificar que el reportType de _CRT_WARN se envíe a una cadena de depuración de salida, y que _CRT_ASSERT se muestre en una ventana de mensajes de depuración y se envíe a stderr, como ya se ha mostrado.
Requisitos
Rutina |
Encabezado necesario |
Encabezado opcional |
---|---|---|
_CrtSetReportMode |
<crtdbg.h> |
<errno.h> |
Para obtener más información sobre compatibilidad, vea Compatibilidad en la introducción.
Bibliotecas: solo versiones de depuración de Características de la biblioteca CRT.
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.