다음을 통해 공유


_set_purecall_handler, _set_purecall_handler_m

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

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

매개 변수

  • function
    순수 가상 함수를 호출할 때 호출 되는 함수입니다.A _purecall_handler 또는 _purecall_handler_m 함수는 void 반환 형식이 있어야 합니다.

반환 값

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

설명

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

하나 이므로 _purecall_handler 모든 스레드가 영향 전체 프로세스에 대 한이 함수를 바로 호출 합니다.마지막 호출자가 임의의 스레드에 있는 처리기를 설정합니다.

하나는 _set_purecall_handler 처리기를 동적으로 링크 된 모든 Dll 또는 실행 파일입니다. 사용자가 호출 하는 경우에 _set_purecall_handler 가 다른 처리기를 바꿀 수 있습니다 또는 다른 DLL 또는 실행 파일을 설정 하는 처리기를 대체 하는 합니다.

기본 동작으로 복원 하려면 호출 _set_purecall_handler 에 있는NULL 인수.

_set_purecall_handler_m 버전의 함수는 CRT 혼합된 모드에 있습니다.

요구 사항

루틴

필수 헤더

_set_purecall_handler,

_set_purecall_handler_m

<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