DWORD dwTickCount;
DWORD dwExceptionCode;
BOOL bFlag;
LONG CALLBACK VEHandler(PEXCEPTION_POINTERS ExceptionInfo)
{
if
(ExceptionInfo->ExceptionRecord->ExceptionCode == dwExceptionCode)
{
bFlag = TRUE;
if
(GetTickCount() - dwTickCount > 50) MessageBoxA(NULL,
"别调试哥"
,NULL,0);
}
return
EXCEPTION_CONTINUE_EXECUTION;
}
void main()
{
AddVectoredExceptionHandler(1,&VEHandler);
dwExceptionCode = (DWORD)EncodePointer((PVOID)GetTickCount());
dwTickCount = GetTickCount();
bFlag = FALSE;
RaiseException(dwExceptionCode,0,0,NULL);
if
(!bFlag) MessageBoxA(NULL,
"别调试哥"
,NULL,0);
MessageBoxA(NULL,
"!"
,NULL,0);
ExitProcess(0);
}