gpt4 book ai didi

c# - 制作要从 c# 调用的 COM dll,HRESULT 错误处理?

转载 作者:太空宇宙 更新时间:2023-11-03 14:30:33 26 4
gpt4 key购买 nike

我正在制作一个 C# 将使用的 COM 接口(interface),但是我想知道如何检查 C# 端异常处理的错误。目前,我只是为大多数方法返回一个 HRESTULT 或 bool,然后执行 Marshal.ThrowExceptionForHR,但其中一些方法可能会出错,返回 E_FAIL 并不能解决问题。

我该怎么做才能返回更多信息?我可以自己创建一个 HRESULT 吗?

最佳答案

我从来没有真正这样做过,但理论上你应该能够通过 supporting IErrorInfo 做到这一点. Marshal.GetExceptionForHR() 有一个采用 IErrorInfo 指针的重载。

顺便说一下,您不必手动调用 Marshal.ThrowExceptionForHR() - 如果您的方法返回 HRESULT 和 [out] 参数作为返回值,您可以在 .NET 中将其声明为返回返回值和 set PreserveSig=false如果 HRESULT 指示失败,CLR 将自动抛出异常。

关于c# - 制作要从 c# 调用的 COM dll,HRESULT 错误处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com