Каков лучший источник для получения информации о кодах ошибок COM? [закрытый]

Хостинг переопределяет onActivityResult(), но он не сделал вызов super.onActivityResult() для необработанных кодов результатов. По-видимому, несмотря на то, что фрагмент является тем, кто делает вызов startActivityForResult(), действие получает первый снимок при обработке результата. Это имеет смысл, если учесть модульность фрагментов. После того, как я выполнил super.onActivityResult() для всех необработанных результатов, фрагмент получил шанс обработать результат.

А также из ответа @siqing:

Чтобы получить результат в вашем фрагменте, сделайте уверенный, что вы вызываете startActivityForResult(intent,111); вместо getActivity().startActivityForResult(intent,111); внутри вашего фрагмента.

5
задан Peter Mortensen 31 January 2010 в 01:23
поделиться

4 ответа

Я всегда использую WinError.h. Это имеет подавляющее большинство кодов ошибок Windows всех видов.

Ключевой показатель для внимательности является частью Средства кода: второй старший значащий байт. Таким образом, 0x80nnmmmm, где nn является Средство. Это говорит Вам, какой компонент сгенерировал код. Что-либо со средством 7 является кодом ошибки Windows, повторно упакованным как HRESULT, и необходимо преобразовать низкое слово в десятичное число и искать его в WinError.h. Существует также диапазон ошибок, который появляется в их собственных заголовках (например, что-либо от 12000 - 12999 является кодом ошибки WinInet, и необходимо искать его в WinInet.h).

Поиск кода ошибки даст Вам символьное имя, которое могло бы быть найдено в большем количестве документации, чем сам код или формулировка сообщения об ошибке.

FACILITY_ITF (который имеет значение 4, таким образом, эти HRESULTs запускают 0x8004) указывает, что ошибка определяется интерфейсом, который Вы используете; необходимо будет свериться с тем интерфейсом для обнаружения то, что это означает.

Наконец, COM также предлагает интерфейс IErrorInfo для получения расширенной информации об ошибке: назовите GetErrorInfo для получения ошибочного объекта. Необходимо будет запросить для ISupportErrorInfo и вызова, что метод InterfaceSupportsErrorInfo интерфейса, чтобы определить, назвали ли интерфейс Вы на самом деле набор ошибочным объектом (и конечно, если это был код шаблона, он мог бы лежать).

5
ответ дан 13 December 2019 в 22:19
поделиться

Ошибочный Поиск (ErrLook.exe) в Вашем %PROGRAMFILES % [Некоторая версия Visual Studio] \Tools папка Common7\будет часто давать Вам сообщение об ошибке, но не всегда:

    |---------------------------------------------------|
    | [] Error Lookup                                   |
    |---------------------------------------------------|
    |   Value: [0x80004027]                             |
    |                                                   |
    |   Error Message                                   |
    |   +---------------------------------------------+ |
    |   |The component or application containing the  | |
    |   |component has been disabled                  | |
    |   |                                             | |
    |   +---------------------------------------------+ |
    |   [Modules...]    [Look up]    [Close]    [Help]  |
    |----------------------------------------------------

Если это не работает, Вы могли бы следовать за некоторыми идеями отсюда: http://blogs.msdn.com/oldnewthing/archive/2008/09/01/8914664.aspx

(Ошибочный Поиск просто называет FormatMessage () с флагом FORMAT_MESSAGE_FROM_SYSTEM),

Если ошибка COM не является системной ошибкой, Вам, возможно, также придется проверить документацию компонента, который бросил ошибку.

При фиксации ошибки в коде можно надеяться, что компонент реализует богатые ошибки (GetErrorInfo (), то же как объект Err в VB), таким образом, можно получить полное сообщение, описывающее проблему.

5
ответ дан 13 December 2019 в 22:19
поделиться

Хорошая ссылка от Prakash (я не знал о материале RCNr - я думал, что те байты были частью средства - но это только верно в Windows на 16 битов, которым это кажется.)

Часто эти неизвестные коды характерны для интерфейса/компонента, который Вы используете. Средство было бы установлено на FACILITY_ITF. У меня есть старая программа HRPlus (ссылка?), который анализирует HRESULTs.

0
ответ дан 13 December 2019 в 22:19
поделиться

Структура кода ошибки COM

Второй в Google заканчивается для Кода ошибки COM.

0
ответ дан 13 December 2019 в 22:19
поделиться
Другие вопросы по тегам:

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