_set_purecall_handler, _set_purecall_handler_m
İşleyici saf sanal işlev çağrısı için ayarlar.
_purecall_handler _set_purecall_handler( _purecall_handler function );
Parametreler
- function
Saf sanal işlevi çağrıldığında çağrılacak işlev.Bir _purecall_handler işlevi dönüş türü void olması gerekir.
Dönüş Değeri
Önceki _purecall_handler.Döndürür NULL meydana gelirse önceki işleyici yok.
Notlar
Kullanım _set_purecall_handler saf sanal işlevler catch ve bunları belirli bir şekilde kullanıcıya rapor veya bunları hata ayıklama amacıyla yakalamak istiyorsanız.
Olmadığından bir _purecall_handler için tüm işlem, bu işlev çağırma hemen tüm diziler etkiler.Herhangi bir iş parçacığı üzerinde son çağrı işleyicisini ayarlar.
Tek bir yok _set_purecall_handler dinamik olarak bağlı tüm DLL'leri veya yürütülebilir dosyalar; işleyicisi çağırdıktan olsa bile _set_purecall_handler , işleyici tarafından başka bir değiştirilebilir veya başka bir DLL veya yürütülebilir bir dosyayı tarafından ayarlanan bir işleyici değiştireceğiz.
Varsayılan davranışı geri yüklemek için arama _set_purecall_handler ile bir NULL bağımsız değişkeni.
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
_set_purecall_handler |
< stdlib.h > |
Uyumluluk daha fazla bilgi için bkz: Uyumluluk giriş.
Örnek
// _set_purecall_handler.cpp
// compile with: /W1
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
class CDerived;
class CBase
{
public:
CBase(CDerived *derived): m_pDerived(derived) {};
~CBase();
virtual void function(void) = 0;
CDerived * m_pDerived;
};
class CDerived : public CBase
{
public:
CDerived() : CBase(this) {}; // C4355
virtual void function(void) {};
};
CBase::~CBase()
{
m_pDerived -> function();
}
void myPurecallHandler(void)
{
printf("In _purecall_handler.");
exit(0);
}
int _tmain(int argc, _TCHAR* argv[])
{
_set_purecall_handler(myPurecallHandler);
CDerived myDerived;
}
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için Platform çağırma örnekler.