Переведите HRESULT в читаемое сообщение

Кто-либо может предоставить некоторую информацию о том, как программно перевести HRESULT значения (http://en.wikipedia.org/wiki/HRESULT) в человекочитаемое сообщение?

Я знаю, что утилита ERR.EXE делает это, но мое приложение должно отобразить некоторое значимое сообщение моим пользователям, а не загадочному 0x800A03EC.

5
задан code4life 26 May 2010 в 15:10
поделиться

2 ответа

Нет встроенной поддержки для создания сообщений из HRESULT с этим значением. Компонент COM должен реализовать это сам с помощью интерфейса IErrorInfo.

Поддержка взаимодействия среды CLR, встроенная в .NET, уже делает это автоматически, вам никогда не придется помогать. Он автоматически генерирует соответствующее исключение, когда видит, что метод интерфейса COM возвращает код ошибки. Свойство Message инициализируется из IErrorInfo. Если в качестве сообщения вы не получили ничего приличного, значит, COM-сервер его просто не предоставляет.

Что скорее всего для 0x800a03ec, это мелкая низкоуровневая ошибка Excel со многими причинами. Вы можете найти множество совпадений по этому поводу, набрав "ошибка Excel 1004".

3
ответ дан 14 December 2019 в 13:28
поделиться

Вы пробовали использовать функцию FormatMessage ? Вы можете использовать его из C #, используя механизм PInvoke.

3
ответ дан 14 December 2019 в 13:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: