set_terminate
(CRT)
Nainstaluje vlastní rutinu terminate
ukonč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á terminate
funkcí . 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. terminate
volá 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