|Important||This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here.|
Installs your own termination routine to be called by terminate.
The set_terminate function installs termFunction as the function called by terminate. set_terminate is used with C++ exception handling and may be called at any point in your program before the exception is thrown. terminate calls abort by default. You can change this default by writing your own termination function and calling set_terminate with the name of your function as its argument. terminate calls the last function given as an argument to set_terminate. After performing any desired cleanup tasks, termFunction should exit the program. If it does not exit (if it returns to its caller), abort is called.
In a multithreaded environment, terminate functions are maintained separately for each thread. Each new thread needs to install its own terminate function. Thus, each thread is in charge of its own termination handling.
The terminate_function type is defined in EH.H as a pointer to a user-defined termination function, termFunction that returns void. Your custom function termFunction can take no arguments and should not return to its caller. If it does, abort is called. An exception may not be thrown from within termFunction.
typedef void ( *terminate_function )( );
The set_terminate function only works outside the debugger.
There is a single set_terminate handler for all dynamically linked DLLs or EXEs; even if you call set_terminate your handler may be replaced by another, or you may be replacing a handler set by another DLL or EXE.
This function is not supported under /clr:pure.
For additional compatibility information, see Compatibility in the Introduction.
Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.