如何处理非托管代码中的托管异常
How to handle managed exception in unmanaged code
我有一个基于COM的c++项目,在这个项目中我访问c#程序集。我想写的代码来处理异常在com项目,这是由c#汇编抛出的。
我尝试放置try和catch块,但是没有抛出异常,而是HRESULT值小于零。我需要c# API抛出的要显示的确切消息字符串。
请对此提供指导。
您有两个可用的信息来源。首先,返回的HRESULT不是任意的,每个托管异常都有一个独特的HRESULT,可以帮助您识别被抛出的异常对象的类型。
接下来,CLR实现IErrorInfo接口。您可以QI用于调用托管方法以获取IErrorInfo接口指针的接口指针。IErrorInfo::GetDescription()返回异常。消息属性值。
这就是它结束的地方,没有办法得到神圣的堆栈跟踪
相关文章:
- 如何在 c++ 非托管代码中反序列化 byte[] 的 json 字符串?
- 如何使用指针直接从托管代码中的非托管代码中读取矢量数据
- 异步接口托管 - > 非托管代码
- 从C++(非托管代码)检索数组到 C 尖锐形式(托管)
- 将C++非托管代码转换为 C#
- 将托管事件处理程序传递给 Linux 中的非托管代码
- 使用 P/Invoke 时存储非托管代码的数据
- Windows 服务导入C++非托管代码
- P/从获取"tried to access protected memory error"调用非托管C++代码
- 将数据从非托管代码传递到托管代码
- 从 VB.NET 调用非托管代码C++ dll
- 当C#中的字节数组传递给结构中的非托管代码时,会发生什么情况
- 在托管代码和非托管代码之间传递非托管结构的安全数组
- 如何调试C++非托管代码中的较低级别文件访问异常/崩溃
- 自定义Direct2D呈现托管代码和非托管代码之间的批封送处理
- winform中的C++非托管代码
- 如何减少 Visual Studio 非托管代码中的发布生成时间
- 让非托管 C++ 代码调用调用 C# 代码的托管 C++ 代码
- 将 C# 窗口句柄传递给非托管代码 - 跨线程异常
- 如何处理非托管代码中的托管异常