【发布时间】:2013-04-24 08:36:49
【问题描述】:
我有一个用 C++ 编写的 dll。它的主要目的是通过 OLE 调用 Word 上的方法。我尝试调用方法“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。 我像这样将它转换为十六进制:
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
这是什么意思?我应该如何继续找出我的方法失败的原因?
【问题讨论】:
-
我做了,但我发现'8'代表失败(此外),'0xa'指向设施'控制',错误代码是0x1421。不过,我还是不明白 0x1421 是什么意思……
-
请把问题从“...这个HRESULT?”到“... of 0x800a1421 HRESULT”