Condividi tramite


set_terminate (CRT)

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

terminate_function set_terminate(
   terminate_function termFunction
);

Parametri

  • termFunction
    Puntatore a una funzione di terminazione scritta dall'utente.

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 nessuna funzione precedente è stata impostata, il valore restituito può essere utilizzato per ripristinare il comportamento predefinito; questo valore può essere NULL.

Note

La funzione set_terminate installa termFunction come funzione chiamata da terminate. set_terminate viene utilizzato con la gestione delle eccezioni di C++ e può essere chiamato in un punto qualsiasi nel programma prima che l'eccezione venga generata. terminate chiama abort per impostazione predefinita. È possibile modificare questa impostazione predefinita scrivendo una funzione di terminazione e chiamando set_terminate con il nome della funzione come argomento. terminate chiama l'ultima funzione fornita come argomento di set_terminate. Dopo aver eseguito le attività si di pulizia desiderate, è consigliabile che termFunction esca dal programma. Se non esce (se restituisce al relativo chiamante), viene chiamato abort.

In un ambiente multithreading, le funzioni di terminazione sono gestite separatamente per ogni thread. Ogni nuova thread necessita l'installazione della propria funzione di terminazione. Quindi, ogni thread è responsabile della gestione della propria 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 personalizzata termFunction non può accettare argomenti e non deve restituire al chiamante. Se restituisce, viene chiamato abort. Un'eccezione non può essere generata all'interno di termFunction.

typedef void ( *terminate_function )( );

Nota

La funzione set_terminate funziona solo all'esterno del debugger.

Esiste un unico gestore set_terminate per tutti i file DLL o EXE collegati in modo dinamico; anche se si chiama set_terminate, è possibile che il proprio gestore venga sostituito da un altro, oppure che sostituisca un gestore impostato da un altro file DLL o EXE.

Questa funzione non è supportata con /clr:pure.

Requisiti

Routine

Intestazione obbligatoria

set_terminate

<eh.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'Introduzione.

Esempio

Vedere l'esempio per terminate.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Routine di gestione delle eccezioni

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)