C++ / CLI: SIGFPE, _control87, _fpreset, портируя древний неуправляемый Watcom C приложение к.NET

У меня есть several-thousand-line приложение, которое полагается на SIGFPE (обработанный указателем функции, переданным сигналу ()) для изменения состояния, и выполните код правильно, когда определенные условия с плавающей точкой происходят. Однако под C++ / CLI в режиме автоматического управления, _control87 генерирует Систему. ArithmeticException, выполняющийся в статическом lib, записанном в C. _fpreset и _control87 не поддерживаются.

Как я заставляю классическую, неуправляемую операцию SIGFPE работать в C++ / приложение CLI? Количество местоположений, где материал с плавающей точкой происходит в моем приложении, могло быть огромное, и я не полностью понимаю все численные методы несколько записанных годы назад другими программистами.

Я хочу, чтобы олдскульная обработка исключений работала над делением с плавающей точкой на нуль, не значением INF. Платформа вызывает стиль, не работает, и #pragma, управляемый (прочь), не добивается цели также.

Какие опции я имею?

9
задан zahir 12 June 2015 в 03:18
поделиться