set_unexpected (CRT)
Instala a sua própria função de finalização para ser chamado por unexpected.
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
Parâmetros
- unexpFunction
Ponteiro para uma função que você escreve para substituir o unexpected função.
Valor de retorno
Retorna um ponteiro para a função de terminação anterior registrado por _set_unexpected 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_unexpected funcionarem instalações unexpFunction como a função de chamada unexpected.unexpectednão é usado na implementação atual de manipulação de exceção do C++.O unexpected_function tipo está definido em EH.H como um ponteiro para uma função definida pelo usuário para inesperado unexpFunction , que retorna void.Seu personalizado unexpFunction função não deve retornar para seu chamador.
typedef void ( *unexpected_function )( );
By default, unexpected calls terminate.Você pode alterar esse comportamento padrão escrever sua própria função de encerramento e chamando set_unexpected com o nome de sua função como seu argumento.unexpectedchama a função última fornecida como um argumento para set_unexpected.
Diferentemente da função de terminação personalizado instalada por uma chamada para set_terminate, uma exceção pode ser lançada a partir do unexpFunction.
Em um ambiente multithread, funções inesperadas são administradas separadamente para cada segmento.Cada novo segmento precisa instalar sua própria função inesperada.Assim, cada thread é responsável por seu próprio tratamento inesperado.
Na implementação atual de manipulação de exceção de C++, Microsoft unexpected chamadas terminate por padrão e nunca é chamado pela biblioteca de tempo de execução de tratamento de exceção.Não há nenhuma vantagem em particular a chamar unexpected em vez de terminate.
Não há um único set_unexpected manipulador para todas as DLLs ou EXEs; dinamicamente vinculados mesmo se você chamar set_unexpected o manipulador pode ser substituído por outro ou que você estiver substituindo um manipulador definida por outra DLL ou EXE.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
set_unexpected |
<eh.h> |
Para obter informações adicionais de compatibilidade, consulte compatibilidade na introdução.
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.