Freigeben über


set_terminate (CRT)

Installiert eigene von terminate aufgerufen werden, Enderoutine.

terminate_function set_terminate(
   terminate_function termFunction
);

Parameter

  • termFunction
    Zeiger auf eine beendensfunktion, die Sie schreiben.

Rückgabewert

Gibt einen Zeiger an die vorherige Funktion zurück, die von set_terminate registriert wird, dass die vorherige Funktion später wiederhergestellt werden kann. Wenn keine vorherige Funktion festgelegt wurde, wird der Rückgabewert verwendet werden, um das Standardverhalten wiederherzustellen; Dieser Wert kann NULL.

Hinweise

Die set_terminate-Funktion installiert termFunction als Funktion, die durch terminate aufgerufen wird. set_terminate wird mit der behandelnden C++-Ausnahme und auf jedem Punkt im Programm aufgerufen werden, bevor die Ausnahme ausgelöst wird. Aufrufe terminate standardmäßig abort. Sie können diese Standardeinstellung ändern, indem Sie die eigene Beendigungsfunktion schreiben und set_terminate mit dem Namen der Funktion als Argument aufrufen. terminate ruft die letzte Funktion angegeben set_terminate als Argument auf. Nachdem es dabei gewünschten Bereinigungsaufgaben ausgeführt wurde, sollte termFunction das Programm beenden. Wenn nicht beendet (wenn es an dessen Aufrufer), wird abort aufgerufen.

In einer Multithreadumgebung beenden Sie Funktionen werden separat verwaltet für jeden Thread. Anforderungen jedes beenden neue Threads, eigene Funktion zu installieren. Daher ist jeder Thread verantwortlich für die eigene Beendigungsbehandlung.

Der Typ terminate_function wird in EH.H als Zeiger auf einer benutzerdefinierten Beendigungsfunktion, termFunction definiert, die void zurückgibt. Ihre benutzerdefinierte Funktion termFunction kann keine Argumente akzeptieren und sollte nicht an dessen Aufrufer zurückzukehren. Wenn ja, wird abort aufgerufen. Eine Ausnahme wird nicht aus termFunction ausgelöst werden.

typedef void ( *terminate_function )( );

Hinweis

Die set_terminate-Funktion funktioniert nur außerhalb des Debuggers.

Es gibt einen einzelnen set_terminate-Handler für alle dynamisch verknüpfte DLLs oder EXE-Dateien; wenn Sie set_terminate aufrufen, wird der Handler durch andere ersetzt werden, oder ersetzen Sie möglicherweise einen Handler, der von einer anderen DLL oder EXE-Datei festgelegt wird.

Diese Funktion wird unter /clr:pure nicht unterstützt.

Anforderungen

Routine

Erforderlicher Header

set_terminate

<eh.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

Im Beispiel für Beenden Sie.

.NET Framework-Entsprechung

Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Ausnahmebehandlungsroutinen

abort

_get_terminate

set_unexpected (CRT)

terminate (CRT)

unexpected (CRT)