Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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