Compartilhar via


set_terminate (CRT)

Instala a sua própria rotina de finalização deve ser chamado por terminate.

terminate_function set_terminate(
   terminate_function termFunction
);

Parâmetros

  • termFunction
    Ponteiro para uma função de encerramento que você escreve.

Valor de retorno

Retorna um ponteiro para a função anterior registrada por set_terminate para que a função anterior pode ser restaurada posteriormente.Se nenhuma função anterior tiver sido definida, o valor de retorno pode ser usado para restaurar o comportamento padrão; Esse valor pode ser NULL.

Comentários

O set_terminate funcionarem instalações termFunction como a função de chamada terminate.set_terminateé usado com a manipulação de exceção de C++ e pode ser chamado em qualquer ponto no seu programa antes que a exceção é lançada.terminatechamadas abort por padrão.Você pode alterar esse padrão escrever sua própria função de encerramento e chamando set_terminate com o nome de sua função como seu argumento.terminatechama a função última fornecida como um argumento para set_terminate.Depois de executar qualquer desejado tarefas de limpeza, termFunction deve sair do programa.Se ele não sair (se ele volta para seu chamador), abort é chamado.

Em um ambiente multithread, encerrar funções são administradas separadamente para cada segmento.Cada novo segmento precisa instalar sua própria função de encerramento.Assim, cada thread é responsável por seu próprio tratamento de terminação.

O terminate_function tipo está definido em EH.H como um ponteiro para uma função definida pelo usuário terminação, termFunction , que retorna void.Sua função personalizada termFunction pode levar sem argumentos e não deve retornar para seu chamador.Em caso afirmativo, abort é chamado.Uma exceção não pode ser lançada a partir do termFunction.

typedef void ( *terminate_function )( );
ObservaçãoObservação

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

Não há um único set_terminate manipulador para todas as DLLs ou EXEs; dinamicamente vinculados mesmo se você chamar set_terminate o manipulador pode ser substituído por outro, ou você pode substituir um manipulador definido por outra DLL ou EXE.

Não há suporte para essa função em /clr:pure.

Requisitos

Rotina

Cabeçalho necessário

set_terminate

<eh.h>

Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.

Exemplo

Consulte o exemplo para Encerrar.

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.

Consulte também

Referência

Rotinas de manipulação de exceção

anulação

_get_terminate

set_unexpected (CRT)

Finalizar (CRT)

inesperado (CRT)