从 HRESULT 创建 COMException

3
如何根据 HRESULT 创建 COMException?
我使用 P/Invoke 调用了一个返回 HRESULT 的 Win32 方法。如果返回失败,我想抛出一个 COMException,带有标准的错误文本。该如何实现?
以下是两种方法:
1. `throw new COMException(null, hResult)` 2. ``` COMException e = new COMException; e.HResult = hResult; throw e; ```
还有其他方法吗?
2个回答

5

1

我建议你查看一下在DLLImport调用中的PreserveSig字段。这将会针对从函数返回的任何非S_OKHRESULT生成一个异常。


1
这会使返回例如 S_FALSE 的函数抛出异常吗?这会很奇怪,但可能比无法将其与 S_OK 区分开要好。 - svick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接