set_unexpected (CRT)

Installa possiedono la funzione di chiusura da chiamare da unexpected.

unexpected_function set_unexpected(
   unexpected_function unexpFunction 
);

Parametri

  • unexpFunction
    Puntatore a una funzione che occorre scrivere per sostituire unexpected funzione.

Valore restituito

Restituisce un puntatore a funzione precedente di chiusura registrata da _set_unexpected in modo da poter ripristinare più avanti la funzione precedente.Se nessuna funzione precedente è stata impostata, il valore restituito può essere utilizzato per ripristinare il comportamento predefinito, questo valore può essere NULL.

Note

set_unexpected la funzione esegue l'installazione unexpFunction come la funzione chiamata da unexpected.unexpected non è utilizzato nell'implementazione della gestione delle eccezioni C++ correnti.unexpected_function il tipo è definito in EH.H come puntatore a una funzione imprevista definita dall'utente, unexpFunction che restituisce void.L'oggetto personalizzato unexpFunction la funzione non deve restituire al relativo chiamante.

typedef void ( *unexpected_function )( );

per impostazione predefinita, unexpected chiamate terminate.È possibile modificare questo comportamento predefinito scrivendo diventi proprietaria della funzione di chiusura e chiamando set_unexpected con il nome della funzione come argomento.unexpected chiama l'ultima funzione fornita come argomento a set_unexpected.

A differenza della funzione personalizzata di chiusura installata da una chiamata a set_terminate, viene generata un'eccezione può essere generata da unexpFunction.

In un ambiente multithreading, le funzioni non sono gestite separatamente per ogni thread.Necessità di ogni nuove thread di installare la propria funzione non intenzionali.Quindi, ogni thread è responsabile della gestione imprevista.

Nell'implementazione Microsoft corrente di gestione delle eccezioni C++, unexpected chiamate terminate per impostazione predefinita e non viene mai chiamato dalla libreria di runtime di gestione delle eccezioni.non c'è vantaggio particolare a chiamare unexpected anziché terminate.

Esiste un singolo set_unexpected gestore per tutte le DLL o EXE collegati in modo dinamico; anche se si chiama set_unexpected il gestore può essere sostituito da un altro o che si sta sostituendo un gestore impostato da un'altra DLL o EXE.

Requisiti

routine

Intestazione di associazione

set_unexpected

<eh.h>

per informazioni di compatibilità aggiuntive, vedere compatibilità nell'introduzione.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione c standard, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di pinvoke.

Vedere anche

Riferimenti

Routine di gestione delle eccezioni

abort

_get_unexpected

set_terminate (CRT)

terminate (CRT)

unexpected (CRT)