Macros _RPT, _RPTF, _RPTW, _RPTFW
Rastreia o progresso de um aplicativo gerando um relatório de depuração (versão de depuração somente). Observe que n especifica o número de argumentos em args e pode ser 0, 1, 2, 3, 4, ou 5.
_RPTn(
reportType,
format,
...[args]
);
_RPTFn(
reportType,
format,
[args]
);
_RPTWn(
reportType,
format
[args]
);
_RPTFWn(
reportType,
format
[args]
);
Parâmetros
reportType
Tipo de relatório: _CRT_WARN, _CRT_ERROR, ou _CRT_ASSERT.format
Cadeia de caracteres de formato controle usada para criar a mensagem do usuário.args
Argumentos de substituição usados por format.
Comentários
Todos esses macros considera os parâmetrosde reportTypeede format. Além disso, também podem levar até quatro argumentos adicionais, significados pelo número anexado ao nome da macro. Por exemplo, _RPT0 e _RPTF0 não têm nenhum argumento adicional, _RPT1 e _RPTF1 usa arg1, _RPT2 e _RPTF2 usa arg1 e arg2, e assim por diante.
Macros de _RPT e de _RPTF são semelhantes à função de printf , pois eles podem ser usados para controlar o progresso de um aplicativo durante o processo de depuração. No entanto, esses são macros mais flexíveis do que printf porque não precisam ser incluídos em instruções de #ifdef para evitar que sejam chamadas em uma compilação de varejo de um aplicativo. Essa flexibilidade é obtida com a macro de _DEBUG ; macros de _RPT e de _RPTF só estão disponíveis quando o sinalizador de _DEBUG é definido. Quando _DEBUG não for definido, as chamadas para esses macros serão removidos durante pré-processamento.
Macros de _RPTW e de _RPTFW são versões de ampla caractere desses macros. São os wprintf e considera cadeias de caracteres de ampla caractere como argumentos.
Macros de _RPT chamam a função de _CrtDbgReport para gerar um relatório de depuração com uma mensagem do usuário. Macros de _RPTW chamam a função de _CrtDbgReportW para gerar o mesmo relatório com caracteres amplos. Macros de _RPTF e de _RPTFW criar um relatório de depuração com o arquivo de origem e o número da linha onde a macro de relatório foi chamado, além da mensagem do usuário. A mensagem do usuário é criada substituindo os argumentos de arg[]nna cadeia de caracteres de format , usando as mesmas regras definidas pela função de printf .
_CrtDbgReport ou _CrtDbgReportW gerenciem o relatório de depuração e determina os destinos com base nos modos e no arquivo atuais de relatório definidos para reportType. As funções de _CrtSetReportMode e de _CrtSetReportFile são usadas para definir os destinos para cada tipo de relatório.
Se uma macro de _RPT é chamado e nem _CrtSetReportMode ou _CrtSetReportFile foram chamados, as mensagens serão exibidas como se segue.
Tipo de relatório |
Destino de saída |
---|---|
_CRT_WARN |
O texto de aviso não é exibido. |
_CRT_ERROR |
Uma janela pop-up. _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); mesma forma como se tivesse sido especificado. |
_CRT_ASSERT |
Mesmo que _CRT_ERROR. |
Quando o destino é uma janela de mensagem de depuração e o usuário escolhe o botão de Repetir , _CrtDbgReport ou _CrtDbgReportW retornam 1, fazendo com que esses macros liguem o depurador, contanto que (JIT) de depuração just-in-time está habilitado. Para obter mais informações sobre como usar esses macros como um mecanismo de tratamento de erros de depuração, consulte Usando macros para verificação e relatórios.
Outros dois macros existem que gerencia um relatório de depuração. A macro de _ASSERT gerencie um relatório, mas apenas quando o argumento da expressão é avaliada como FALSE. _ASSERTE é exatamente como _ASSERT, mas inclui a expressão com falha no relatório gerado.
Requisitos
Macro |
Cabeçalho necessário |
---|---|
macros de_RPT |
<crtdbg.h> |
macros de_RPTF |
<crtdbg.h> |
macros de_RPTW |
<crtdbg.h> |
macros de_RPTFW |
<crtdbg.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade na Introdução.
Bibliotecas
Versões de depuração das Bibliotecas em tempo de execução C somente.
Embora esses são macros e sejam obtidos incluindo Crtdbg.h, o aplicativo deve vincular a uma das bibliotecas de depuração como esses macros chamam outras funções de tempo de execução.
Exemplo
Consulte o exemplo no tópico de _ASSERT .
Equivalência do .NET Framework
Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de chamadas de plataformas.