set_unexpected (crt)
安装拥有 unexpected将调用终止函数。
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
参数
- unexpFunction
对该函数的指针将替换 unexpected 功能编写。
返回值
返回指向 _set_unexpected 签入以前的终止函数,以便能够在以后恢复前面的功能。 如果以前功能未设置,则返回值可用于还原默认行为;此值可能为空。
备注
set_unexpected 功能内置 unexpFunction 作为 unexpected调用的函数。 unexpected 不使用异常处理实现的当前 C++。 unexpected_function 类型在 EH.H 为返回 void的用户定义的意外的函数的指针, unexpFunction 定义。 自定义 unexpFunction 函数不应返回到其调用方。
typedef void ( *unexpected_function )( );
默认情况下, unexpected 调用 terminate。 您可以通过编写拥有终止函数和调用与函数的名称 set_unexpected 更改此默认行为作为其参数。 unexpected 调用最后一个函数是作为参数 set_unexpected。
调用不同安装的自定义终止函数为 set_terminate,则可能会引发从 unexpFunction的内部。
在一个多线程环境中,意外的功能对每个线程分别进行维护。 每个新线程需要安装自己意外的功能。 因此,每个线程都是负责自己意外处理。
默认情况下在 C++ 异常处理的当前 Microsoft 实现, unexpected 调用 terminate 和由异常处理的运行库从不调用。 没有特定的优势。调用 unexpected 而不是 terminate。
具有全部动态链接到的 DLL 或 EXE 的单个 set_unexpected 处理程序;即使您调用 set_unexpected 处理程序可以将另一个替换或所替换另一个 DLL 或 EXE 设置的处理程序。
要求
实例 |
必需的头 |
---|---|
set_unexpected |
eh.h |
有关其他的兼容性信息,请参见中介绍的 兼容性 。
.NET Framework 等效项
不适用。若要调用标准 C 函数,请使用 PInvoke。有关更多信息,请参见 平台调用示例。