try/catch
and __try/__except
blocks are setting per thread exception frames , so your Fortran dll may spawns another threads that may throw the unhandled exceptions you are faced. Try to set a proccess wide exception filter that will exceutes as the last recover to the unhandled exceptions that may be thrown by your dll. the key function is the Win32 SetUnhandledExceptionFilter function. I hope it works for you. AbuMalek
AboMalek
Posts
-
Calling Other DLLS from VC application -
COM+ architecture questionNo you don't need to wrap it with a com object, simply you need to keep your data structure as a global variable to the dll module then provide a code that manipulate that structure with a multi-threaded-safe fasion and you are done. if you want to avoid writing syncronization code you can rely on the sahred property manager as daniel advised. AbuMalek
-
COM+ and SetUnhandledExceptionFilterHi All, I'm trying to set a top-level exception call-back filter inside a com+ application server. Although SetUnhandledExceptionFilter seems to succeed, that it returns the previously installed filter correctly, my filter never been called. of course I'm trying to detect the call in a (release mode) through a simple code that creates a log file to be filled later with the proper informations I need for recovering.When calling the filter from a
__try/__except(MyFilter(..))
block, the filter code executes correctly, but when generating a purposly unhandled exception the file is never been created. Any idea? Regards. AbuMalek