Quando un'eccezione esce da una funzione in una DLL, il runtime mingw32 chiama semplicemente
e termina
std :: inatteso invece di propagare l'eccezione al codice che sta chiamando la DLL. Quali soluzioni ci sono per questo problema? La DLL e l'applicazione che lo chiama sono entrambi compilati con lo stesso compilatore.Eccezioni di cattura generate dalle DLL
Ci sono due differenti meccanismi di eccezione supportati da mingw32: SJLJ e DWARF2. Uno di loro dovrebbe lavorare meglio dell'altro per questo? Forse l'unica opzione è passare a MSVC o ICC o forse il solo cambiamento delle opzioni di compilazione potrebbe aiutare?
Avviso che nemmeno catch (...) prenderà alcuna eccezione, neppure tipi built-in (gettare 1;), quindi non è la visibilità del tipo di eccezione.
Interessante. Può essere che ogni libreria abbia un runtime C++ collegato staticamente? – sharptooth