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_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