set_terminate (CRT)
Instaluje własne procedury zakończenia ma być wywoływana terminate.
terminate_function set_terminate(
terminate_function termFunction
);
Parametry
- termFunction
Wskaźnik do funkcji terminate, którym możesz pisać.
Wartość zwracana
Zwraca wskaźnik do funkcji poprzednich zarejestrowane przez set_terminate , dzięki czemu można później przywrócone poprzednie funkcji.Jeżeli nie ustawiono żadnej funkcji poprzedniej wartości zwracanej może służyć Aby przywrócić domyślne zachowanie; wartość ta może być NULL.
Uwagi
set_terminate Działać instaluje termFunction jako funkcja wywoływana przez terminate.set_terminatejest używana z obsługi wyjątków C++ i może być wywoływana w dowolnym miejscu programu, zanim jest wyjątek.terminatewywołania abort domyślnie.Można zmienić to ustawienie domyślne przez pisanie funkcji zakończenia i wywoływania set_terminate o nazwie funkcji jako argumentu.terminatewywołuje funkcję ostatniego, biorąc pod uwagę jako argument do set_terminate.Po wykonasz pożądane zadania oczyszczania, termFunction należy zamknąć program.Jeśli nie jest zamykany (jeżeli jest zwracana do wywołującego), abort jest wywoływana.
W środowisku wielowątkowym zakończyć funkcje są obsługiwane osobno dla każdego wątku.Każdy nowy wątek musi zainstalować ma własną funkcję terminate.W ten sposób każdy wątek jest odpowiedzialny za obchodzenie zakończenie.
terminate_function Typ jest zdefiniowany w EH.H jako wskaźnik do funkcji zdefiniowanej przez użytkownika zakończenie, termFunction , które zwraca void.Niestandardowych funkcji termFunction można wykonać żadnych argumentów i nie powinny powrócić do miejsca wywołania.Jeśli tak się stanie, abort jest wywoływana.Wyjątek nie może zostać wygenerowany w programie termFunction.
typedef void ( *terminate_function )( );
[!UWAGA]
set_terminate Funkcja działa tylko poza debugera.
Istnieje tylko jedno set_terminate obsługi dla wszystkich dynamicznie połączonej biblioteki DLL lub exe; nawet jeśli zadzwonisz set_terminate nasza procedura obsługi może być zastąpione innym lub może zastępowanie obsługi, określonych przez inną bibliotekę DLL lub EXE.
Ta funkcja nie jest obsługiwana w /clr:pure.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
set_terminate |
<eh.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
Zobacz przykład dla Zakończenie.
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.