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。 如需詳細資訊,請參閱平台叫用範例。