Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Instaluje własną procedurę kończenia, która ma być wywoływana przez terminateprogram .
Składnia
terminate_function set_terminate( terminate_function termFunction );
Parametry
termFunction
Wskaźnik do funkcji zakończenia, którą piszesz.
Wartość zwracana
Zwraca wskaźnik do poprzedniej funkcji zarejestrowanej przez set_terminate , aby można było przywrócić poprzednią funkcję później. Jeśli nie ustawiono żadnej poprzedniej funkcji, wartość zwracana może służyć do przywrócenia domyślnego zachowania; ta wartość może mieć wartość NULL.
Uwagi
Funkcja set_terminate jest instalowana termFunction jako funkcja wywoływana przez terminatefunkcję . set_terminate jest używany z obsługą wyjątków języka C++ i może być wywoływany w dowolnym momencie w programie przed zgłoszeniem wyjątku. terminate domyślnie wywołuje abort . Tę wartość domyślną można zmienić, pisząc własną funkcję zakończenia i wywołując set_terminate przy użyciu nazwy funkcji jako argumentu. terminatewywołuje ostatnią funkcję podaną jako argument .set_terminate Po wykonaniu żądanych zadań termFunction oczyszczania program powinien zakończyć działanie programu. Jeśli nie zostanie zakończona (jeśli powróci do elementu wywołującego), abort zostanie wywołana.
W środowisku wielowątkowym funkcje zakończenia są obsługiwane oddzielnie dla każdego wątku. Każdy nowy wątek musi zainstalować własną funkcję zakończenia. W związku z tym każdy wątek jest odpowiedzialny za własną obsługę kończenia.
Typ terminate_function jest zdefiniowany w EH. H jako wskaźnik do funkcji zakończenia zdefiniowanej przez użytkownika, termFunction która zwraca wartość void. Funkcja termFunction niestandardowa nie może przyjmować żadnych argumentów i nie powinna zwracać się do elementu wywołującego. Jeśli tak się dzieje, abort jest wywoływana. Wyjątek może nie zostać zgłoszony z poziomu elementu termFunction.
typedef void ( *terminate_function )( );
Uwaga
Funkcja set_terminate działa tylko poza debugerem.
Istnieje jedna set_terminate procedura obsługi dla wszystkich dynamicznie połączonych bibliotek DLL lub EXE. Nawet jeśli wywołasz set_terminate program obsługi, może zostać zastąpiony przez inną lub można zastąpić program obsługi ustawiony przez inną bibliotekę DLL lub EXE.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
set_terminate |
<eh.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
Zobacz przykład dla elementu terminate.
Zobacz też
Procedury obsługi wyjątków
abort
_get_terminate
set_unexpected
terminate
unexpected