从HRESULT创建COMException

lei*_*ren 3 c# com

如何在给定HRESULT的情况下创建COMException?

我有P/Invoke:ed一个win32方法,它返回一个HRESULT.
如果它返回失败,我希望抛出一个带有标准错误文本的COMException.
我该怎么办?

  1. throw new COMException(null, hResult)

  2. COMException e = new COMException;
    e.HResult = hResult;
    throw e;

或者我应该使用其他方法吗?

svi*_*ick 5

Marshal.GetExceptionForHR()如果您只想获得异常,或者Marshal.ThrowExceptionForHR()想要抛出异常,则应该使用它.