Hi all, I got the problem that I can't catch an exception which is thrown in a shared library under MS windows. Since we need to use exceptions to tell the calling site if something went wrong, we need a working exception mechanism.
The compilers I tried were g++-4.1.2 and g++-4.2.2, running unter cygwin with mingw32 target. The compilers where generated from vanilla sources, configure paramters are ../gcc-4.2.2/configure --host=i686-pc-cygwin --build=i686-pc-cygwin --target=i586-pc-mingw32 --enable-languages=c,c++ So does anyone know how to enable the exception handling mechanism so it works under windows? bye Rudi -8<---8<---8<---8<---8<-- th.cpp #include <stdexcept> void x() throw(std::runtime_error) { throw std::runtime_error("blubb"); } -8<---8<---8<---8<---8<-- cat ct.cpp #include <iostream> extern void y(); int main() { y(); } -8<---8<---8<---8<---8<-- a.cpp #include <iostream> #include <stdexcept> extern void x()throw(std::runtime_error); void y() { try { x(); } catch(...) { std::cerr << "Exception\n"; } } -8<---8<---8<---8<---8<-- $ /usr/local/bin/i586-pc-mingw32-g++ -shared th.cpp -o th.dll $ /usr/local/bin/i586-pc-mingw32-g++ -shared -o a.dll a.cpp th.dll $ /usr/local/bin/i586-pc-mingw32-g++ -o ct.exe ct.cpp a.dll $ ./ct.exe abnormal program termination terminate called after throwing an instance of 'std::runtime_error' what(): blubb $ /usr/local/bin/i586-pc-mingw32-g++ --version i586-pc-mingw32-g++ (GCC) 4.2.2 Copyright (C) 2007 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus