Как говорится в заголовке, искали способ поймать все исключения из куска кода на С++ и обернуть его в dll. Таким образом, мы можем защитить приложение, использующее эту DLL, от любых ошибок, возникающих в этой DLL.
Однако это не представляется возможным с С++ под Windows.
Пример:
void function()
{
try
{
std::list<int>::iterator fd_it;
fd_it++;
} catch(...) {}
}
Исключение, которое не происходит, не попадает в стандартный блок С++ try/catch или любую функцию транслятора SEH, установленную _set_se_translator()
. Вместо этого происходит сбой библиотеки DLL, и программа, использующая DLL, прерывается. Мы скомпилировали с Visual С++ 2005 с опцией /SHa. Кто-нибудь знает, если это возможно в С++/Win32, чтобы поймать эти проблемы и создать оболочку DLL-оболочки?