Udostępnij za pośrednictwem


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.

Zobacz też

Informacje

Procedur obsługi wyjątków

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)