다음을 통해 공유


_set_purecall_handler

순수 가상 함수 호출에 필요한 처리기를 설정합니다.

_purecall_handler _set_purecall_handler(     _purecall_handler function );

매개 변수

  • function
    순수 가상 함수 호출 시 호출되는 함수입니다. _purecall_handler 함수에 void 반환 형식이 있어야 합니다.

반환 값

이전 처리기가 없는 경우 _purecall_handler는 NULL을 반환합니다.

설명

순수 가상 함수를 catch하여 특정 방식으로 사용자에게 보고하려는 경우 또는 디버깅을 위해 catch하려는 경우 _set_purecall_handler를 사용합니다.

전체 프로세스에는 _purecall_handler가 1개 이므로 이 함수를 호출하면 모든 스레드가 즉시 영향을 받습니다. 스레드의 마지막 호출자가 처리기를 설정합니다.

동적으로 연결된 모든 DLL 또는 실행 파일에 대해서는 _set_purecall_handler 처리기가 1개 있습니다. _set_purecall_handler를 호출하더라도 사용자의 처리기가 다른 처리기로 바뀌거나 사용자가 다른 DLL 또는 실행 파일로 설정한 처리기를 바꿀 수 있습니다.

기본 동작을 복원하려면 NULL 인수를 사용하여 _set_purecall_handler를 호출합니다.

요구 사항

루틴

필수 헤더

_set_purecall_handler

<stdlib.h>

호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.

예제

// _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 항목

해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

오류 처리(CRT)

_purecall