_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. 자세한 내용은 플랫폼 호출 예제.