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çã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.