_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를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.