Partilhar via


set_terminate (CRT)

Instala sua própria rotina de conclusão a ser chamada por terminate.

terminate_function set_terminate(
   terminate_function termFunction
);

Parâmetros

  • termFunction
    Ponteiro para finalizar uma função que você grave.

Valor de retorno

Retorna um ponteiro para a função previous registrada por set_terminate de forma que a função anterior pode ser restaurados posteriormente. Se nenhuma função anterior foi definida, o valor de retorno pode ser usado para restaurar o comportamento padrão; esse valor pode ser NULL.

Comentários

A função de set_terminate instala termFunction como a função chamada por terminate. set_terminate é usado com manipulação de exceção C++ e pode ser chamado em qualquer momento do programa antes que a exceção seja gerada. chamadas abort determinate por padrão. Você pode alterar esse padrão escrevendo sua própria função de término e chamando set_terminate com o nome da função como seu argumento. terminate chama a função last especificada como um argumento para set_terminate. Depois de executar qualquer tarefa desejada de limpeza, termFunction deve sair do programa. Se não é encerrado (se retorna ao chamador), abort é chamado.

Em um ambiente multithread, encerre funções são mantidos separados para cada thread. Necessidades das novas cada thread de instalar seus próprios encerram a função. Assim, cada thread é responsável de sua própria manipulação de término.

O tipo de terminate_function é definido em EH.H como um ponteiro para uma função definida pelo usuário do término, termFunction que retorna void. A função personalizada termFunction não pode aceitar argumentos e não deve retornar ao chamador. Se fizer isso, abort é chamado. Uma exceção não pode ser gerada a partir de termFunction.

typedef void ( *terminate_function )( );

Dica

A função de set_terminate só funciona fora do depurador.

Há um único manipulador de set_terminate para todas as dlls ou Execuções dinamicamente vinculado; mesmo se você chamar set_terminate seu manipulador pode ser substituído por outro, ou você pode substituir um manipulador definido por outro DLL ou por um EXE.

Essa função não tem suporte em /clr:pure.

Requisitos

Rotina

Cabeçalho necessário

set_terminate

<eh.h>

Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.

Exemplo

Consulte o exemplo de encerrar.

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.

Consulte também

Referência

Rotinas do tratamento de exceções

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)