Aracılığıyla paylaş


_set_purecall_handler, _set_purecall_handler_m

Pure sanal işlev çağrısı işleyicisini ayarlar.

_purecall_handler _set_purecall_handler( 
   _purecall_handler function
);
_purecall_handler _set_purecall_handler_m( 
   _purecall_handler_mfunction
);

Parametreler

  • function
    Saf bir sanal işlev çağrıldığında çağrılacak işlev.A _purecall_handler veya _purecall_handler_m işlevi bir void dönüş türüne sahip olmalıdır.

Dönüş Değeri

Önceki _purecall_handler.Döndürür NULL varsa önceki işleyici yok.

Notlar

Use _set_purecall_handler saf sanal işlevler çekmek ve bunları belirli bir şekilde kullanıcıya bildirmek veya hata ayıklama amacıyla yakalamak isteyip istemediğinizi.

Olduğu için bir _purecall_handler tüm işlem için tüm iş parçacıklarını hemen bu işlevinin çağrılması etkiler.Herhangi bir iş parçacığı üzerinde son çağrı işleyicisini ayarlar.

Tek bir var. _set_purecall_handler işleyicisi dinamik olarak bağlı tüm dll dosyaları veya yürütülebilir dosyaları; çağırdığınız bile _set_purecall_handler , işleyici başka tarafından değiştirilebilir veya başka bir dll veya yürütülebilir bir işleyici değiştirdiğiniz.

Varsayılan davranışını geri yüklemek için arama _set_purecall_handler ile birNULL bağımsız değişkeni.

_set_purecall_handler_m Karma mod crt işlevi değildir.

Gereksinimler

Yordamı

Gerekli başlık

_set_purecall_handler,

_set_purecall_handler_m

<stdlib.h>

Daha fazla uyumluluk bilgileri 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

Yoktur. Standart c işlevi çağırmak için kullanmak PInvoke. Daha fazla bilgi için bkz: Platform Çağırma örnekleri.

Ayrıca bkz.

Başvuru

Hata işleme (crt)

_purecall