set_terminate (CRT)

Installa la routine di terminazione personalizzata che deve essere chiamata da terminate.

Sintassi

terminate_function set_terminate( terminate_function termFunction );

Parametri

termFunction
Puntatore a una funzione di terminazione personalizzata.

Valore restituito

Restituisce un puntatore alla funzione precedente registrata da set_terminate, in modo che la funzione precedente possa essere ripristinata in un secondo momento. Se non è stata impostata alcuna funzione precedente, è possibile usare il valore restituito per ripristinare il comportamento predefinito; questo valore può essere NULL.

Osservazioni:

La funzione set_terminate installa termFunction come funzione chiamata da terminate. La funzione set_terminate viene usata con la gestione delle eccezioni C++ e può essere chiamata in qualsiasi punto del programma prima che venga generata l'eccezione. terminate chiama abort per impostazione predefinita. È possibile modificare questo comportamento predefinito scrivendo una funzione di terminazione personalizzata e chiamando set_terminate con il nome della funzione come argomento. terminate chiama l'ultima funzione fornita come argomento a set_terminate. Dopo aver eseguito tutte le attività di pulizia desiderate, termFunction uscire dal programma. Se non esce (se torna al chiamante), abort viene chiamato .

In un ambiente multithreading, le funzioni di terminazione vengono mantenute separatamente per ogni thread. Ogni nuovo thread richiede l'installazione della propria funzione di terminazione. Quindi, ogni thread è responsabile della propria gestione della terminazione.

Il tipo terminate_function è definito in EH.H come puntatore a una funzione di terminazione definita dall'utente, termFunction che restituisce void. La funzione termFunction personalizzata non può accettare argomenti e non deve tornare al chiamante. In caso affermativo, viene chiamata la funzione abort. È possibile che non venga generata un'eccezione da termFunction.

typedef void ( *terminate_function )( );

Nota

La funzione set_terminate funziona solo all'esterno del debugger.

Esiste un singolo set_terminate gestore per tutte le DLL o exes collegate dinamicamente. Anche se si chiama set_terminate il gestore può essere sostituito da un altro gestore oppure è possibile sostituire un gestore impostato da un'altra DLL o EXE.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Ciclo Intestazione obbligatoria
set_terminate <eh.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Vedere l'esempio per terminate.

Vedi anche

Routine di gestione delle eccezioni
abort
_get_terminate
set_unexpected
terminate
unexpected