问题标签 [hresult]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2976 浏览

asp.net - 在 Visual Studio 中,我的设计视图不加载母版页控件。为什么?

就是这么多HRESULT E_FAIL,如果你知道我在说什么。

如果您使用 Visual Studio,您就会知道我在说什么。

类似的线程,但不是重复的:Visual Studio 中 aspx 页面的设计视图有用吗?

任何见解,包括来自 Microsoft MVP 的输入(哦,我知道你在那里)都会非常酷。

0 投票
1 回答
999 浏览

c# - 从 AxHost 获取更多调试信息?

我正在尝试部署一个应用程序,该应用程序使用在 C# 中嵌入带有 AxHost 的 ActiveX 控件的库。

当我在我们的测试平台上运行已安装的应用程序时,我发现并显示以下异常:

我用谷歌搜索了 0x800736B1,所以我知道这意味着无法加载文件。

现在的大问题是如何找出无法加载的文件

是否可以打开某种日志记录功能,或者是否有某种方法可以从异常中获取更多信息?

0 投票
2 回答
216 浏览

com - 我应该如何检查 COM 中的 [out] 参数是否可以使用?

除非函数成功,否则官方不应使用[out]COM 函数中的参数,这意味着(至少)有三种方法可以查看是否[out]可以使用参数。

考虑以下接口

您会推荐以下哪种方式来使用它?

1.检查返回值

这让我有点紧张,因为一个错误IFoo可能会导致NULL指针取消引用。

2.检查输出参数

这取决于一个事实,如果一个方法失败,它不能改变任何[out]参数(如果参数改变了 <==> 使用它是安全的)。

请注意,无论如何都会发生这种情况,如果指针不存在,则CComPtr析构函数将调用,因此它不会是垃圾。ReleaseNULL

3.偏执的方式,检查两者

在我看来,这有点冗长。


PS 见相关问题

0 投票
6 回答
18000 浏览

c# - 如何确定 System.IO.IOException 的 HResult?

System.Exception.HResult 属性受保护。如何在不诉诸反射或其他丑陋黑客的情况下查看异常并获取 HResult?


情况如下:
我想编写一个备份工具,它可以打开和读取系统上的文件。根据本指南,我使用 FileAccess.Read 和 FileShare.ReadWrite 打开文件,因为我不在乎文件在读取时是否打开以进行写入。

在某些情况下,当我正在读取的文件被另一个应用程序打开时,System.IO.FileStream.Read() 方法会抛出 System.IO.IOException,“该进程无法访问该文件,因为另一个进程已锁定一部分文件”。这是错误 33,或者我认为是 HResult 0x80070021。[编辑:我相信当另一个进程调用LockFileEx来锁定文件中的字节范围时,可以返回。]

当我收到此错误时,我想暂停并重试。我认为这是在这里采取的适当行动。如果锁定过程快速释放字节范围锁定,那么我可以继续读取文件。

由于这个原因,我如何将 IOException 与其他人区分开来?我可以想到这些方法:

  • 私人反思 - 不想那样做。性能会发臭。
  • 调用 Exception.ToString() 并解析字符串。感觉很hacky。不适用于 i18n 版本。

我不喜欢这些选项。难道没有更好、更清洁的方法吗?


我只是四处搜索,发现System.Runtime.InteropServices.Marshal.GetHRForException。这会返回一个像 0x80070021 这样的 uint 吗?

0 投票
4 回答
211 浏览

c++ - 编译器未标记 HRESULT 的错误返回值

我只是花了长时间试图诊断为什么,在下面的代码片段中,该ProcessEvent()方法似乎忽略了false我传入的值aInvokeEventHandler

每当我闯入ProcessEvent()方法时,无论我是否通过,aInvokeEventHandler总是会。truefalse

一位同事向我指出,该false值应该在该行的括号内return,如下所示:

我一看到这个,就踢了自己一脚。发现这一点显然变得更加困难,因为原始编码器在行上使用了多余的括号return

我的问题是,为什么编译器没有为我选择这个?

我的方法返回 a HRESULT,但在上面的原始代码中,我显然在括号中返回了一组复合值,即:

这样的符号在 C/C++ 标准中是否可以接受,如果可以,允许这样做的目的是什么?或者这是编译器中的错误?

0 投票
1 回答
1449 浏览

sharepoint - 将用户添加为网站所有者时出现 SharePoint 错误

我有一个 MOSS 2007 网站,我是该网站的管理员。在站点的“人员和组”区域中,我正在尝试将用户添加为站点所有者。在“添加用户”页面上,我添加用户名并单击“确定”,之后我得到这个完全无用的错误:

来自 HRESULT 的异常:
Microsoft.SharePoint.Library.SPRequestInternalClass.UpdateMembers 中的 0x80040E37(字符串 bstrUrl、Guid 和 pguidScopeId、Int32 lGroupID、Int32 lGroupOwnerId、Object& pvarArrayAdd、Object& pvarArrayAddIds、Object& pvarArrayLoginsRemove、Object& pvarArrayIdsRemove、Boolean bSendEmail)在 Microsoft.SharePointLibrary。 SPRequest.UpdateMembers(字符串 bstrUrl、Guid& pguidScopeId、Int32 lGroupID、Int32 lGroupOwnerId、Object& pvarArrayAdd、Object& pvarArrayAddIds、Object& pvarArrayLoginsRemove、Object& pvarArrayIdsRemove、布尔 bSendEmail)

我使用 WinDbg 来查看是否可以获得更有意义的错误消息,但没有任何有用的信息。我还对所使用的调用运行了一个 SQL 配置文件,但同样没有显示任何真正的结论。

如果有帮助,该站点最近是从另一台服务器上执行的备份中恢复的。该网站本身在恢复后运行良好,只是这一点似乎被破坏了。

谁能帮我这个?

干杯。贾斯。

0 投票
1 回答
4503 浏览

c++ - 创建自己的 HRESULT?

我已经有一个使用大量 COM 和 HRESULTS 的项目。无论如何,我想知道是否可以定义自己的 HRESULT,并且能够将 FormatMessage() 用于我们自己的 HRESULT?

我挖了一圈,找不到任何东西。有任何想法吗?

编辑

基本上我想定义一组我自己的 HRESULT,而不是仅仅返回 E_FAIL。或其他通用的之一。像 E_FAIL 就可以了。但假设我想指出,例如地理处理子系统崩溃或文件是无效的光栅图像。该应用程序已经在整个过程中使用了 COM。

0 投票
2 回答
1547 浏览

c# - 在 C# 中使用 HResult、互操作和相关事物

我正在用 C# 开发一个项目来创建表单应用程序。我想使用 IFileDialog 和其他属于本机 Windows API 的功能(或者应该调用 ti)。

一开始我对互操作或 Windows API 一无所知。我开始学习,但有时很难找到有关某些方面的非常基本的信息。因此,我有一个(可能是微不足道/愚蠢的)问题:

HResults 经常被使用。据我了解,HResults 只不过是一个 32 位实体,其中不同的位提供有关某些操作结果的信息。在我在网上找到的一些代码中,我经常看到类似int hres = -2147467259;. 作为一个完全的菜鸟,我去检查这意味着什么。-21474672590xFFFFFFFF80004005并且在 MSDN 的在线文档中,我可以看到这0x80004005表示E_FAIL又名未指定的错误。我的问题是,这FFFFFFFF部分是怎么回事?他们就不能用int hres = 0x80004005吗?也许这很明显,我完全是菜鸟,但仍然:)

0 投票
0 回答
1050 浏览

keyword - 在 asp.net 应用程序中使用关键字查询对象在 sharepoint 中进行搜索时出错

我正在尝试在 asp.net 应用程序中使用关键字查询对象。

我写了这段代码:

命名空间:使用 System.Data.SqlClient;使用 Microsoft.SharePoint;使用 Microsoft.SharePoint.Search;使用 Microsoft.SharePoint.Search.Query;

页面加载事件:GridView grd = new GridView(); 数据表 dt = 新数据表();KeywordQuery qRequest = new KeywordQuery(" http://server/ril "); qRequest.QueryText = "RILLIB"; ResultTableCollection resTableCollect = qRequest.Execute(); 结果表 resTable = resTableCollect[ResultType.RelevantResults]; 数据表 dtTable = new DataTable(); dtTable.Load(resTable, LoadOption.OverwriteChanges); grd.DataSource = dtTable; grd.DataBind();

Page.Controls.Add(grd);

好?当我运行它时出现错误:HRESULT 异常:0xC0041228

当我看到日志时,我发现了这些行。究竟是什么错误?我怎样才能删除它?

事件类型:错误事件源:Office SharePoint Server 事件类别:Office Server 共享服务事件 ID:6481 日期:2009 年 5 月 11 日时间:下午 6:12:25 用户:不适用计算机:服务器描述:应用程序服务器作业失败对于服务实例 Microsoft.Office.Server.Search.Administration.SearchServiceInstance (41fdea47-166f-4d9f-9cd0-4f3dd0f5cd5b)。

原因:对路径“C:\WINDOWS\system32\drivers\etc\HOSTS”的访问被拒绝。

技术支持详细信息:System.UnauthorizedAccessException:对路径“C:\WINDOWS\system32\drivers\etc\HOSTS”的访问被拒绝。在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs , String msgPath, Boolean bFromProxy) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter.CreateFile(String path, Boolean append)在 System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) 在 System.IO.FileInfo 的 System.IO.StreamWriter..ctor(String path, Boolean append)。

有关详细信息,请参阅http://go.microsoft.com/fwlink/events.asp上的帮助和支持中心。

0 投票
4 回答
12374 浏览

exception - ERROR_DLL_INIT_FAILED 是什么意思?

我在调用非托管程序集的托管 (C#) 应用程序中看到以下异常:

Caught:System.IO.FileLoadException '动态链接库 (DLL) 初始化例程失败。(来自 HRESULT 的异常:0x8007045A)'

这个 HRESULT 是什么意思,我应该从哪里开始诊断?