set_terminate
(CRT)
tarafından terminate
çağrılmak üzere kendi sonlandırma yordamınızı yükler.
Sözdizimi
terminate_function set_terminate( terminate_function termFunction );
Parametreler
termFunction
Yazdığınız bir terminate işlevinin işaretçisi.
Dönüş değeri
Önceki işlevin daha sonra geri yüklenebilmesi için tarafından kaydedilen set_terminate
önceki işleve bir işaretçi döndürür. Önceki bir işlev ayarlanmamışsa, varsayılan davranışı geri yüklemek için dönüş değeri kullanılabilir; bu değer olabilir NULL
.
Açıklamalar
set_terminate
işlevi tarafından terminate
çağrılan işlev olarak yüklenirtermFunction
. set_terminate
C++ özel durum işlemesi ile kullanılır ve özel durum oluşturulmadan önce programınızın herhangi bir noktasında çağrılabilir. terminate
varsayılan olarak çağrılar abort
. Kendi sonlandırma işlevinizi yazarak ve işlevinizin adını bağımsız değişkeni olarak çağırarak set_terminate
bu varsayılanı değiştirebilirsiniz. terminate
için bağımsız değişken set_terminate
olarak verilen son işlevi çağırır. İstenen temizleme görevlerini termFunction
gerçekleştirdikten sonra programdan çıkılmalıdır. Çıkış yapmazsa (çağıranı döndürürse) abort
çağrılır.
Çok iş parçacıklı bir ortamda sonlandırma işlevleri her iş parçacığı için ayrı ayrı tutulur. Her yeni iş parçacığının kendi sonlandırma işlevini yüklemesi gerekir. Bu nedenle, her iş parçacığı kendi sonlandırma işleme sorumluluğundadır.
Türü terminate_function
EH'de tanımlanır. Kullanıcı tanımlı sonlandırma işlevinin işaretçisi olarak H, termFunction
döndürür void
. Özel işleviniz termFunction
bağımsız değişken alamaz ve çağırana geri dönmemelidir. Varsa, abort
çağrılır. içinden termFunction
bir özel durum oluşturulamayabilir.
typedef void ( *terminate_function )( );
Not
set_terminate
İşlev yalnızca hata ayıklayıcının dışında çalışır.
Dinamik olarak bağlı tüm DLL'ler veya EXE'ler için tek set_terminate
bir işleyici vardır. İşleyicinizi çağırsanız set_terminate
bile başka bir dll veya EXE tarafından ayarlanan bir işleyiciyi değiştirebilirsiniz.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
set_terminate |
<eh.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
örneğine terminate
bakın.
Ayrıca bkz.
Özel durum işleme yordamları
abort
_get_terminate
set_unexpected
terminate
unexpected