次の方法で共有


set_terminate (CRT)

terminate を呼び出す終了独自のルーチンをインストールします。

terminate_function set_terminate(
   terminate_function termFunction
);

パラメーター

  • termFunction
    作成した既存の関数へのポインター。

戻り値

前の関数が後で復元できるように set_terminate に登録されている以前の関数へのポインターを返します。前の関数が設定されていない場合の既定の動作を復元するには戻り値が使用されることがあります。; この値は null になることがあります。

解説

set_terminate の関数は terminate によって呼び出された関数として termFunction をインストールします。set_terminate は C++ 例外処理を除き例外がスローされる前に使用されプログラム上の任意の場所で呼び出される場合があります。terminate の呼び出し abort 既定では。独自の終了関数を作成し引数として関数の名前で set_terminate を呼び出すとこの既定値を変更できます。terminate は最後の関数を set_terminate に引数として受け取る呼び出します。必要なクリーンアップ タスクを実行するとtermFunction はプログラムを終了する必要があります。(呼び出し元に返されますが終了していない場合)abort が呼び出されます。

マルチスレッド環境では関数を個別には各スレッドの終了します。各独自のを新しいスレッドのニーズによって関数を終了します。したがって各スレッドは独自の終了処理する必要があります。

terminate_function の型はユーザー定義の終了関数へのポインターで termFunction EH.H とその戻り void 定義されます。カスタム termFunction 関数は引数を受け取らないことで呼び出し元に返される必要があります。これはabort が呼び出されます。例外は termFunction 内からスローされることがあります。

typedef void ( *terminate_function )( );

[!メモ]

set_terminate の関数はデバッガーの外部でのみ動作します。

動的にリンクされる DLL または EXE の set_terminate 一つのハンドラーがあります。; set_terminate を呼び出した場合でもハンドラーは別の置換したり別の DLL または EXE とハンドラー セットを置き換える場合があります。

この関数は /clr:pure でサポートされていません。

必要条件

ルーチン

必須ヘッダー

set_terminate

<eh.h>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

使用例

終了します。 の例を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

例外処理ルーチン

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)