Share via


set_terminate (CRT)

Nainstaluje vlastní rutinu terminateukončení, která se má volat .

Syntaxe

terminate_function set_terminate( terminate_function termFunction );

Parametry

termFunction
Ukazatel na funkci ukončení, kterou napíšete.

Vrácená hodnota

Vrátí ukazatel na předchozí funkci registrovanou set_terminate tak, aby předchozí funkci bylo možné později obnovit. Pokud nebyla nastavena žádná předchozí funkce, může být vrácená hodnota použita k obnovení výchozího chování; tato hodnota může být NULL.

Poznámky

Funkce set_terminate se nainstaluje termFunction jako funkce volaná terminatefunkcí . set_terminate se používá při zpracování výjimek jazyka C++ a může být volána v libovolném bodě programu před vyvolání výjimky. terminate ve výchozím nastavení volá abort . Toto výchozí nastavení můžete změnit tak, že jako argument napíšete vlastní funkci ukončení a zavoláte set_terminate s názvem funkce. terminatevolá poslední funkci, která je uvedena jako argument .set_terminate Po provedení požadovaných úloh termFunction čištění by měl program ukončit. Pokud se neodejde (pokud se vrátí do volajícího), abort zavolá se.

V prostředí s více vlákny se ukončovací funkce spravují samostatně pro každé vlákno. Každé nové vlákno musí nainstalovat vlastní funkci ukončení. Každé vlákno je tedy zpoplatněno vlastním zpracováním ukončení.

Typ terminate_function je definován v EH. H jako ukazatel na uživatelem definovanou funkci ukončení, termFunction která vrací void. Vaše vlastní funkce termFunction nemůže přijímat žádné argumenty a neměl by se vracet do volajícího. Pokud ano, abort volá se. Výjimku nelze vyvolat z uvnitř termFunction.

typedef void ( *terminate_function )( );

Poznámka

Funkce set_terminate funguje jenom mimo ladicí program.

Existuje jedna set_terminate obslužná rutina pro všechny dynamicky propojené knihovny DLL nebo exEs; i když voláte set_terminate obslužnou rutinu může být nahrazena jinou nebo může být nahrazena obslužnou rutinou nastavenou jinou knihovnou DLL nebo EXE.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Požadovaný hlavičkový soubor
set_terminate <eh.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Podívejte se na příklad pro terminate.

Viz také

Rutiny zpracování výjimek
abort
_get_terminate
set_unexpected
terminate
unexpected