Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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_terminateolarak 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 termFunctionbir ö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 terminatebakın.
Ayrıca bkz.
Özel durum işleme yordamları
abort
_get_terminate
set_unexpected
terminate
unexpected