Im having problems with exception propagation through dll boundaries.
In my main function I've implemented a try/catch statment with a catch(int a) and the default catch(...).
Inside the try, I call another function that is imported from a shared library, but when an exception is raised there (say "throw 1"), the try/catch of the main function doesnt see the type of the exception, and uses the default catch.
If I do the same thing but without crossing the dll boundaries, all is OK.
I've checked that the runtime library is the same (/MDd) in both places.
Ah, so just to be clear, the desired behavior is that the throw 1 in the callee (which passes through one or more dll boundaries) should be caught by the catch in main, not the default handler. If I understand correctly, that's what happens with no dll's involved, but across dll's, the icl built binary will catch in the default handler, while the MS built binary will crash, i.e. not catch it anywhere?