On 27-6-2012 16:22, Antonio Fortuny wrote: > > Le 27/06/2012 16:14, OBones a écrit : >> Hello, >> >> Regular exceptions, those raised with the "raise" keyword are always >> trapped by try..except blocks but you have to make sure that EVERY >> method in the DLL that is called by the host exe has such a construct >> so as not to let the exception escape. >> However, there are exceptions that come from the FPU and that arise >> when doing floating point maths. Those, in a DLL, are not trapped by >> the try..except blocks and are passed back to the host exe, >> effectively crashing them. >> If you want to trap them, you have to add a special unit in your DLL >> project, as explained in this issue: >> >> http://bugs.freepascal.org/view.php?id=12974 > I read quickly the las post and seems encouraging. I'll try it in my UDF > (64bit, windows, Michael is right) and report any discrepancy but not > before next week.
Would compiling FPC with the SEH exception handling code (-dTEST_WIN64_SEH) instead of that unit work in this context? It worked for me with Win64 embedded (i.e. dll+exe in same memory space) when dealing with exceptions inside the FB dll that incorrectly bubbled up to the exe. Unfortunately I don't know enough to tell if this would also improve FPU exception behaviour... See e.g. last comment in this bug: http://bugs.freepascal.org/view.php?id=21581 Thanks, Reinier _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal