_RPT, _RPTF, _RPTW, _RPTFW macros
Controla o andamento de um aplicativo gerando um relatório de depuração (somente a versão de depuração).Observe que n Especifica o número de argumentos na 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
Report type: _CRT_WARN, _CRT_ERROR, or _CRT_ASSERT.format
Seqüência de caracteres de controle do formato usada para criar a mensagem do usuário.args
Os argumentos de substituição usados por format.
Comentários
Todas essas macros levar a reportTypee formatparâmetros.Além disso, eles também podem demorar até quatro argumentos adicionais, representados pelo número anexado ao nome da macro.For example, _RPT0 and _RPTF0 take no additional arguments, _RPT1 and _RPTF1 take arg1, _RPT2 and _RPTF2 take arg1 and arg2, and so on.
O _RPT e _RPTF as macros são semelhantes do printf funcionar, pois eles podem ser usados para controlar o andamento de um aplicativo durante o processo de depuração.No entanto, essas macros são mais flexíveis que printf porque eles não precisam ser colocado entre #ifdef instruções para a impedi-los de que está sendo chamado em uma compilação de um aplicativo de varejo.Essa flexibilidade é atingida usando a _ Debug macro; o _RPT e _RPTF as macros estão disponíveis somente quando o _DEBUG sinalizador é definido.Quando _DEBUG não é definido, chamadas para essas macros são removidas durante o pré-processamento.
O _RPTW e _RPTFW as macros são versões de caracteres largos dessas macros.Eles são como wprintf e tomar as seqüências de caracteres largos como argumentos.
O _RPT macros chamada a _CrtDbgReport a função para gerar um relatório de depuração com uma mensagem do usuário.O _RPTW macros chamada a _CrtDbgReportW função para gerar o mesmo relatório com caracteres de largura.O _RPTF e _RPTFW macros criar um relatório de depuração com o número de linha e o arquivo de origem onde a macro de relatório foi chamada, além da mensagem do usuário.A mensagem do usuário é criada, substituindo o argn argumentos para oformat em seqüência, usando as mesmas regras definidas pelo printf função.
_CrtDbgReportou _CrtDbgReportW gera o relatório de depuração e determina seus destinos com base em modos de relatório atual e o arquivo definido para reportType.O _ CrtSetReportMode e _CrtSetReportFile funções são usadas para definir os destinos para cada tipo de relatório.
Se um _RPT é chamada de macro e nenhum deles _CrtSetReportMode nem _CrtSetReportFile foi chamado, as mensagens são exibidas da seguinte maneira.
Tipo de relatório |
Destino de saída |
---|---|
_CRT_WARN |
O texto de aviso não é exibido. |
_CRT_ERROR |
Uma janela pop-up.Mesmo como se _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); tivesse sido especificado. |
_CRT_ASSERT |
Same as _CRT_ERROR. |
Quando o destino é uma janela de mensagem de depuração e o usuário escolhe o novamente botão, _CrtDbgReport ou _CrtDbgReportW retorna 1, fazendo com que essas macros iniciar o depurador, desde que a depuração just-in-time (JIT) está habilitada.Para obter mais informações sobre como usar essas macros como um mecanismo de tratamento de erros de depuração, consulte Usando Macros para verificação e emissão de relatórios.
Existem duas outras macros gerar um relatório de depuração.O _ASSERT macro gera um relatório, mas somente quando seu argumento da expressão for avaliada como FALSE._ASSERTE é exatamente com _ASSERT, mas inclui a expressão com falha no relatório gerado.
Requisitos
Macro |
Cabeçalho necessário |
---|---|
_RPTmacros |
<crtdbg.h> |
_RPTFmacros |
<crtdbg.h> |
_RPTWmacros |
<crtdbg.h> |
_RPTFWmacros |
<crtdbg.h> |
Para obter mais informações de compatibilidade, consulte compatibilidade na introdução.
Bibliotecas
Versões de depuração de bibliotecas de tempo de execução c somente.
Embora essas macros são e são obtidas, incluindo Crtdbg.h, o aplicativo deve vincular com uma das bibliotecas de depuração porque essas macros chamam outras funções de tempo de execução.
Exemplo
Veja o exemplo de _ASSERT tópico.
Equivalência do .NET Framework
Não aplicável. Para chamar a função c padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.