| Предыдущий | Следующий |
| DISP_E_NOTACOLLECTION | DISP_E_BUFFERTOOSMALL |
DISP_E_DIVBYZERO
Что означает DISP_E_DIVBYZERO
DISP_E_DIVBYZERO (0x80020012) — Деление на ноль.
При результате 0x80020012 граница диагностики проходит внутри подсистемы «COM Automation», в области «IDispatch, сопоставление имён, аргументы VARIANT и локаль». Здесь сообщение «деление на ноль» связано с темой «divbyzero».
Что проверить и как подтвердить исправление
В первую очередь сопоставьте первый отказ с фактическими параметрами операции. Для 0x80020012 в сценарии «деление на ноль» воспроизведите отказ на минимальном объекте и меняйте только одно условие за запуск, чтобы отделить неверный вход от состояния системы.
Перед повтором 0x80020012 зафиксируйте DISPID, имя члена, LCID, число и типы аргументов, DISPPARAMS, EXCEPINFO и argErr; отдельно запишите HRESULT, LCID, EXCEPINFO, VARIANT, CLSID. Различия по теме «divbyzero» для 0x80020012 покажут, изменился ли первый неуспешный этап.
Практическое исправление для 0x80020012: приведите число, порядок и типы аргументов к описанию вызываемого члена; сохраните EXCEPINFO до следующего COM-вызова. В контексте условия «деление на ноль» для 0x80020012 оно должно устранить подтверждённую причину, а не скрыть исходный HRESULT.
Считайте исправление подтверждённым только после устойчивого повтора исходного сценария без результата 0x80020012 и без обхода штатных проверок.
Документация для результата 0x80020012: IDispatch::GetIDsOfNames · DISPPARAMS · VARIANT structure.
Нужно найти другой код? Найти другой код состояния или ошибки.