Как отобразить сообщение об исключении управляемого кода C # в коде C ++ - PullRequest
1 голос
/ 15 января 2010

Я вызываю функции, используя SMO dll c # в проекте c ++, но код в этой dll вызывает некоторое исключение, так как я могу отобразить сообщение об исключении в моем коде C ++

1 Ответ

1 голос
/ 15 января 2010

Зависит от того, как вы это называете. Если вы используете COM, то вы получите сбой HRESULT. Вы можете использовать IErrorInfo для получения сообщения об исключении. Если вы используете что-то другое, вы потеряете контекст ошибки, все, что вы увидите, это исключение SEH с кодом исключения 0xe0434f4e, которое можно отлавливать только с помощью ключевых слов __try и __except.

Настоятельно рекомендуется использовать COM.


РЕДАКТИРОВАТЬ после того, как вы отправили код. Хорошо, вы используете COM. И умные указатели, полученные из _com_ptr_t, которые создаются директивой #import. Эти умные указатели превращают ошибки HRESULT в исключения C ++. Вам нужно поймать исключение _com_error. У этого класса также есть канализация, чтобы получить подходящее описание исключения, используйте метод Description ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...