#cpp_cli
Наверное, один из главных вопросов, которые остались - это как именно происходит обработка\вывод исключений из C++ CLI кода в C# коде. Ведь С++ CLI совмещает в себе управляемый и неуправляемый код, и в добавок вызывается из управляемого C# кода. Как на стороне C# правильно обрабатывать исключения C++ CLI кода: Если в управляемой части CLI кода не проставлены try\catch блоки из? Если в управляемой части CLI кода проставлены try\catch блоки из ? Пробрасывать дальше? Если на стороне неуправляемого кода выбивает AcсessViolation, а в управляемой части CLI этот метод находится в блоке try\catch - приложение всеравно рухнет?
Ответы
Ответ 1
Бросание исключений между библиотеками и языками следует исключить. Причина - в C++ нет фиксированного ABI, даже разные версии компилятора могут внутри эти делишки реализовывать разными способами. Хотите надежный и переносимый код - локализуйте исключения в пределах одного бинарника.
Комментариев нет:
Отправить комментарий