в котором синхронные исключения не
Пример, в котором синхронные исключения не работают
// Компилировать как выпуск (версию) Win32, используя ключ /GX,
// чтобы убедиться, что функция-транслятор не будет вызываться.
// (Ключ /GX отображается в /EHsc.) Чтобы заставить эту программу
// работать в финальных построениях, компилируйте ее с ключом /ЕНа.
#include "stdafx.h"
class CSEHError
{
public :
CSEHError ( void)
{
m_uiErrCode = 0;
}
CSEHError ( unsigned int u)
{
m_uiErrCode = u;
}
~CSEHError ( void)
{
}
unsigned int m_uiErrCode;
};
void TransFunc ( unsigned int u, EXCEPTION_POINTERS * pEP)
{
printf ( "In TransFuncXn");
throw CSEHError ( u);
}
void GrungyFunc ( char * p)
{.
*P = 'p';
printf ( "This output should never be seen!\n");
}
void DoBadThings ( void)
{
try
{
GrungyFunc ( (char*)0xl);
}
catch ( CSEHError e)
{
printf ( "Got an exception! -> Ox%08X\n", e.m_uiErrCode);
}
}
int main ( int argc, char* argv[])
{
_set_se_translator ( TransFunc);
DoBadThings ();
return 0;
}
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий