set_terminate
(CRT)
安装 terminate
将调用的自身的终止例程。
语法
terminate_function set_terminate( terminate_function termFunction );
参数
termFunction
指向终止你编写的函数的指针。
返回值
返回指向由 set_terminate
注册的上一个函数的指针,以便稍后能还原上一个函数。 如果之前尚未设置函数,则返回值可用于还原默认行为;此值可能为 NULL
。
注解
set_terminate
函数安装 termFunction
作为由 terminate
调用的函数。 set_terminate
与 C++ 异常处理一起使用,在引发异常之前可以在程序中的任意位置对其进行调用。 默认情况下,terminate
调用 abort
。 可以通过以下方式更改此默认行为:编写自己的终止函数并调用 set_terminate
(将该函数的名称作为其参数)。 terminate
调用作为 set_terminate
的参数提供的最后一个函数。 执行任何所需的清除任务后,termFunction
应退出程序。 如果没有退出(如果返回到其调用方),则调用 abort
。
在多线程环境中,终止单独为每个线程维护的函数。 每个新线程都需要安装自己的终止函数。 因此,每个线程都负责处理它自己的终止处理。
在 EH.H 中将 terminate_function
类型定义为指向用户定义的终止函数的指针,则 termFunction
返回 void
。 自定义函数 termFunction
可以不采用参数,也不应返回到其调用方。 否则调用 abort
。 不从 termFunction
中引发异常。
typedef void ( *terminate_function )( );
注意
set_terminate
函数仅在调试器外部工作。
存在适用于所有动态链接的 DLL 或 EXE 的单个 set_terminate
处理程序;即使你调用 set_terminate
,你的处理程序也可能会替换为另一个处理程序,或者你也要使用另一个 DLL 或 EXE 替换处理程序集。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
例程 | 必需的标头 |
---|---|
set_terminate |
<eh.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
请参阅 terminate
的示例。
另请参阅
异常处理例程
abort
_get_terminate
set_unexpected
terminate
unexpected