Когда исключение выходит из функции в DLL, среда выполнения mingw32 просто вызывает terminate std:: неожиданный, а не распространяет исключение на код, вызывающий DLL. Какие решения существуют для этой проблемы? DLL и приложение, вызывающее его, скомпилированы с тем же компилятором.
Существует два разных механизма исключения, поддерживаемые mingw32: SJLJ и Dwarf2. Должен ли кто-то из них работать лучше, чем другой? Возможно, единственный вариант - переключиться на MSVC или ICC или, возможно, изменить варианты сборки?
Обратите внимание, что даже catch (...) не поймает никаких исключений, даже не встроенных типов (throw 1;), поэтому речь идет не о видимости типа исключения.