У меня есть неуправляемое приложение c ++, которое предоставляет собственный обработчик _matherr. Когда это приложение загружает и запускает код в неуправляемых библиотеках DLL, при наличии ошибки Math (например, asin (100.0)) вызывается пользовательская функция _matherr, и все работает.
Однако сейчас я пытаюсь создать DLL-библиотеку NUnit Test в C ++ / CLI, которая загружает ту же неуправляемую DLL и выполняет тот же код, что и приложение, описанное выше. Я хочу добавить функцию _matherr в dll C ++ / CLI, чтобы при возникновении математических ошибок я мог выполнять некоторую пользовательскую логику обработчика.
DLL-библиотека C ++ / CLI прекрасно компилируется с определенной функцией _matherr, но когда я запускаю математическую ошибку из неуправляемой библиотеки DLL, функция _matherr не вызывается.
Разве это не поддерживается C ++ / CLI? В документации MSDN написано, что _matherr поддерживается всеми средами выполнения C (со ссылкой на список сред выполнения, включая время выполнения / clr.)