Тема: C++Builder bug?
Показать сообщение отдельно
Старый 20.12.2004, 14:51     # 7
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
blacklist
Вот тебе работа с AccessViolation, остальное по аналогии:
Код:
static int filter(EXCEPTION_POINTERS *xp)
{
  int return_code;
  EXCEPTION_RECORD *xr = xp->ExceptionRecord;

  switch (xr->ExceptionCode)
  {
    case EXCEPTION_ACCESS_VIOLATION:
      return_code = EXCEPTION_EXECUTE_HANDLER;
      ShowMessage("ExceptionCode: "+IntToStr(xr->ExceptionCode)+"\nExceptionAddress: "+IntToHex((int)xr->ExceptionAddress,8));
      break;

    default:
      return_code = EXCEPTION_CONTINUE_SEARCH;
      break;
  };
  return return_code;
}


void __fastcall TForm1::Button1Click(TObject *Sender)
{
  EXCEPTION_POINTERS *xp;
  try
  {
    int* p = NULL;
    *p = 0x1234;
  }
  __except (filter(xp=GetExceptionInformation()))
  {
    //...
  }
}
ЕЖ вне форума