set_unexpected (CRT)
Instaluje vlastní ukončení funkce pro volání unexpected.
unexpected_function set_unexpected(
unexpected_function unexpFunction
);
Parametry
- unexpFunction
Ukazatel na funkci Napsat a nahradit unexpected funkce.
Vrácená hodnota
Vrací ukazatel na funkci ukončení předchozí registrovaných _set_unexpected tak, aby bylo později možné obnovit předchozí funkce.Pokud byla nastavena žádná předchozí funkce, vrácenou hodnotu lze obnovit výchozí chování; Tato hodnota může být NULL.
Poznámky
set_unexpected Nainstaluje funkci unexpFunction jako funkce volány unexpected.unexpectednení použit v aktuální implementaci C++ zpracování výjimek.unexpected_function Typu je definována v EH.H jako ukazatel na uživatelem definované neočekávané funkce unexpFunction , který vrací void.Vlastní unexpFunction není funkce zpět na volajícího.
typedef void ( *unexpected_function )( );
By default, unexpected calls terminate.Toto chování lze změnit psaní ukončení funkce a volání set_unexpected s názvem funkce jako svůj argument.unexpectedvolá funkci poslední zadána jako argument set_unexpected.
Na rozdíl od vlastní ukončení funkce nainstalována pomocí volání set_terminate, může být vyvolána výjimka ve unexpFunction.
V prostředí s více podprocesy jsou neočekávané funkce udržovány odděleně pro každý podproces.Každý nový podproces musí nainstalovat vlastní funkci neočekávané.Každý podproces tedy za vlastní neočekávané zpracování.
V aktuální implementaci Microsoft C++ zpracování výjimek unexpected volání terminate ve výchozím nastavení se nazývá nikdy knihovnou spuštění zpracování výjimek.Žádnou výhodu zejména k volání unexpected namísto terminate.
Existuje jeden set_unexpected obslužnou rutinu pro všechny dynamicky propojené soubory DLL nebo EXEs; i v případě, že při volání set_unexpected vaše Obsluha může být nahrazena jinou nebo nahrazujete obsluhu nastavit jinou DLL nebo EXE.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
set_unexpected |
<eh.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.