. net定义通用的HRESULT值吗?

本文关键字:HRESULT 值吗 定义 net | 更新日期: 2023-09-27 18:16:59

我正在c#中创建一个COM类,它将从非托管c++中调用。我想使用ThrowExceptionForHR,但我不想硬编码HRESULT数值。

我期待会有一些共同的HRESULT值的枚举在。net某处?

换句话说,我在哪里可以找到映射到HRESULT值传递到ThrowExceptionForHR的命名符号?

更新:

MS在这个页面中讨论它:托管代码中的HRESULT信息。它们引用了VSConstants类Microsoft.VisualStudio.VSConstants,但是当我尝试使用它时,它声称命名空间不存在

. net定义通用的HRESULT值吗?

是的,. net预定义了HRESULT值。您可以通过而不是帮助来使用它们,抛出一个标准的。net异常,就像如果托管程序使用您的库时所做的那样。异常的HResult属性值有时与常见的HResult值匹配,如果匹配明显(如OutOfMemoryException == 0x800700E),一般为0x8013xxxx值。

xxxx值被广泛记录并在CorError.h SDK头文件中列出。IErrorInfo::GetDescription()给出异常的Message属性值。自动定位,很好。你不能得到神圣的堆栈跟踪