共用方式為


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呼叫。

在多執行緒環境中,終止函式會為每個執行緒分別維護。 每個新的執行緒需要安裝它自己的終止函式。 因此,每個執行緒是負責終止處理。

terminate_function型別定義於 EH。為使用者定義的終止函式指標的 h termFunction ,會傳回void。 您的自訂函式termFunction能使用沒有引數,而且應該不會傳回給其呼叫者。 如果是這樣, abort呼叫。 例外狀況不會擲回在termFunction。

typedef void ( *terminate_function )( );
注意事項注意事項

set_terminate函式只能偵錯工具外部。

沒有單一set_terminate所有動態連結的 Dll 或 Exe ; 處理常式 即使您呼叫set_terminate可能會由另一個,來取代您的處理常式,或是您可能替換另一個 DLL 或 EXE 所設定的處理常式。

不支援此函式**/clr:pure**。

需求

常式

所需的標頭

set_terminate

<eh.h>

其他的相容性資訊,請參閱相容性在簡介中。

範例

請參閱範例的終止

.NET Framework 對等用法

不適用。 若要呼叫標準的 c 函式,使用PInvoke。 如需詳細資訊,請參閱平台叫用範例

請參閱

參考

例外狀況處理常式

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)