set_unexpected (CRT)
Instala sua própria função de término a ser chamada por unexpected.
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
Parâmetros
- unexpFunction
Ponteiro para uma função que você grave para substituir a função de unexpected .
Valor de retorno
Retorna um ponteiro para a função previous de término registrada por _set_unexpected 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_unexpected instala unexpFunction como a função chamada por unexpected. unexpected não é usada na implementação de manipulação de exceções gerais do atual C++. O tipo de unexpected_function é definido em EH.H como um ponteiro para uma inesperada função definida pelo usuário, unexpFunction que retorna void. A função personalizadas de unexpFunction não deve retornar ao chamador.
typedef void ( *unexpected_function )( );
Por padrão, chamadas terminatede unexpected . Você pode alterar este comportamento padrão escrevendo sua própria função de término e chamando set_unexpected com o nome da função como seu argumento. unexpected chama a função last especificada como um argumento para set_unexpected.
Ao contrário da função personalizada de término instalada por uma chamada a set_terminate, uma exceção pode ser gerada a partir de unexpFunction.
Em um ambiente multithread, as funções inesperadas são mantidas separadamente para cada thread. Necessidades de cada thread de instalar novos sua própria função inesperada. Assim, cada thread é responsável de sua própria manipulação de forma inesperada.
Na implementação atual da Microsoft na manipulação de exceção C++, unexpected chama terminate por padrão e nunca for chamado pela biblioteca de tempo de execução manipulação de exceções gerais. Não há nenhuma vantagem específico para chamar unexpected em vez de terminate.
Há um único manipulador de set_unexpected para todas as dlls ou Execuções dinamicamente vinculado; mesmo se você chamar set_unexpected seu manipulador pode ser substituído por outro ou se você estiver substituindo um manipulador definido por outro DLL ou por um EXE.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
set_unexpected |
<eh.h> |
Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.
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.