如何创建一个给定HRESULT的COMException?
我有P/Invoke:ed,一个win32 32-方法,它返回一个HRESULT。
如果它返回失败,我希望抛出一个带有标准错误文本的COMException。
我该怎么做?
throw new COMException(null, hResult)
COMException e = new COMException;
e.HResult = hResult;
throw e;
还是我应该用别的方法?
发布于 2012-03-19 01:45:13
如果您只想获得异常,则应该使用Marshal.GetExceptionForHR()
,如果要抛出异常,则使用Marshal.ThrowExceptionForHR()
。
发布于 2012-03-19 01:48:17
我会在您的PreserveSig调用中查看DllImport字段。这将为函数返回的任何非S_OK
HRESULT
生成异常。
https://stackoverflow.com/questions/9767909
复制相似问题