set_terminate (CRT)
Instala sua própria rotina de finalização deve ser chamado por terminate.
terminate_function set_terminate(
terminate_function termFunction
);
Parâmetros
- termFunction
Ponteiro para um terminar função 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 conjunto, o valor retornado pode ser usado restauração o comportamento padrão; esse valor pode ser nulo.
Comentários
The set_terminate instalações de função termFunction função de chamada por terminate. set_terminate é usado com tratamento de exceções do C++ e pode ser chamado em qualquer ponto no seu programa antes que a exceção é lançada. terminate chamadas 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 da sua função sistema autônomo seu argumento. terminate chama a função última fornecida sistema autônomo um argumento para set_terminate. Depois de executar tarefas de limpeza, qualquer desejadotermFunction deve sair do programa. Se ele não sair (se ela retorna a seu chamador), abort é chamado.
Em um ambiente multithreaded, terminar funções são mantidas separadamente para cada thread.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.
The terminate_function tipo EH.H está definido sistema autônomo um ponteiro para uma função de encerramento definido pelo usuário 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 de dentro de termFunction.
typedef void ( *terminate_function )( );
Observação: |
---|
O set_terminate função só funciona fora do depurador. |
Há um único set_terminate manipulador para todos os vinculados dinamicamente DLLs ou EXEs; mesmo se você chamar set_terminate o manipulador pode ser substituído por outro ou pode substituir um manipulador conjunto 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 compatibilidade, consulte Compatibilidade na introdução.
Exemplo
Consulte o exemplo para terminar.
Equivalente do NET Framework
Não aplicável. Para telefonar a função C padrão, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.