set_terminate (CRT)

安装被terminate 调用的终端函数。

terminate_function set_terminate(
   terminate_function termFunction
);

参数

  • termFunction
    指向自己编写的终止函数的指针。

返回值

返回指向由 set_terminate 注册的前终端函数,以便前面的函数之后可能还原。 如果以前尚未设置函数,返回值可用于还原默认行为;此值可能为 NULL。

备注

set_terminate 函数安装 termFunction 作为 terminate调用的函数。 C++ 异常处理使用set_terminate,且在抛出异常之前, 在程序中可以随时调用。 terminate 默认调用 abort。 通过编写您自己终止函数和通过你的函数作为它的参数来调用 set_terminate 来更改此默认。 terminate 调用指定为 set_terminate 的参数的最后一个函数。 在执行任何所需的清理任务后,termFunction 应该退出程序。 如果不退出 (如果它返回到调用方),则调用 abort。

在多线程环境中,每个线程都是单独维护终止函数。 每个新线程需要安装自己的终止函数。 因此,每个线程都控制自己终止处理。

terminate_function type定义为指向用户定义的终止函数的指针,termFunction 返回 void 自定义 termFunction 函数不采用参数,不应返回到调用方。 如果是,调用 abort。 不能从 termFunction抛出异常。

typedef void ( *terminate_function )( );

备注

set_terminate 函数仅在调试器外部运行。

所有的动态链接DLLs 或 EXEs 有单set_terminate,即使您调用set_terminate处理程序可能会被另一个替代,或者您用另外的DLL 或 EXE替代处理程序。

/clr:pure不支持此功能。

要求

例程

必需的标头

set_terminate

<eh.h>

有关其他兼容性信息,请参见“简介”中的兼容性

示例

有关示例,请参见 terminate 类。

.NET Framework 等效项

不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见平台调用示例

请参见

参考

异常处理例程

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)