Что означает значение 0x800a1421 HRESULT?

У меня есть DLL, написанная на C ++. Его главная цель — вызывать методы в Word с помощью OLE. Я пытаюсь вызвать метод «SaveAs»:

HRESULT hr;
szFunction = OLESTR("SaveAs");
hr = doc->GetIDsOfNames(IID_NULL, &szFunction, 1,
LOCALE_USER_DEFAULT,
&dispid_Cap);
hr = doc->Invoke(dispid_Cap, IID_NULL,
LOCALE_USER_DEFAULT, DISPATCH_METHOD,
&dpCap, NULL, NULL, NULL);

Это терпит неудачу, и я не могу понять, почему. Значение hr -2146823135.
Я преобразовал это в hex как это:

sprintf(hex_buff, "%x", (unsigned int)hr);

который дал 0x800a1421

Я попытался выяснить, что этот код означает с этой программой: http://www.microsoft.com/en-us/download/details.aspx?id=985
Но результат был:

as an HRESULT: Severity: FAILURE (1), Facility: 0xa, Code 0x1421
NOT FOUND: 800a1421

Что это значит? Как мне узнать, почему мой метод не работает?

3

Решение

Основная причина, по которой у вас возникают проблемы с диагностикой ошибки, заключается в том, что вы взяли один ярлык слишком много. Вы передаете NULL для IDispatch :: Invoke () pExcepInfo аргумент. Что хорошо с IDispatch, это в основном означает «не говорите мне, что вы знаете об исключении, я сам разберусь с кодом ошибки». Вы пропустите полезные вещи, такие как текстовое описание ошибки и файл справки, который ее документирует. Если доступно. Очевидно, что вы не хотите использовать этот вид ярлыка, когда задаете этот вопрос.

Во всяком случае, вы все равно можете перепроектировать проблему из кода исключения. Объект 0x0a зарезервирован для приложений автоматизации OLE, код ошибки зависит от приложения. Который превращает 0x1421 в «Ошибка слова 5153». Поместите это в запрос Google, второй удар дает вам ссылку на кого-то, кто выяснил, что означает ошибка 5153.

Вы пытаетесь перезаписать файл, который открыл кто-то другой. Очень распространенная неудача.

Исправьте свой код, и вы захотите показать описание ошибки человеку, чтобы он мог позаботиться о нем.

4

Другие решения

Информация о 0x800a1421 от ‘HR Plus‘ инструмент:

  • Тип ошибки: OLE HRESULT
  • Функция ошибки: FACILITY_CONTROL 0x0000000A
  • Серьезность: SEVERITY_ERROR 0x00000001
  • Код: 0x00001421

И о 0x00001421 от ‘Ошибка поиска‘ инструмент:
Контрольный идентификатор не найден.

2

По вопросам рекламы [email protected]