如何在C++中管理从 dll 发送的异常
How to manage exceptions sent from dlls in C++
我已经读到一些问题,从dll(或.so)抛出异常并从可执行文件中捕获它并不容易或不可能。 我有一个爱好项目,exe充当一个库,也就是说,是客户端dll的"功能提供者",或多或少是这个结构:
ExeProgram::method1() -> Dll::method2() -> ExeProgram::method3() [-> Dll::method4()]
所以,我的问题是:一个好的执行设计如何才能实现:- dll 可能会引发异常。- 异常捕获应该在 ExeProgram 中。
C++11 有什么方法可以实现这个设计吗?
- 通过错误代码使 DLL 报告错误。
- 创建一个客户端包装器,用于处理 DLL 加载并为其提供简单的接口。
- 使包装器将错误代码转换为异常。
相关文章:
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- 在 ******.exe 中0x00000000772CA267 (ntdll.dll) 处未处理的异常:0xC0000
- 在类 12.exe 中0x7B37FF80 (ucrtbased.dll) 引发异常: 0xC0000005:访问冲突读
- 发生此错误:在0x0F2BFB7C(基于.dll)时引发异常 尝试更改大小是问题吗?
- 为什么g_object_set抛出异常(vcruntime140.dll)?
- 处理 c++ DLL 的异常
- 在OpenCV_core310.dll中使用findContours函数时,OpenCV引发未处理的异常
- 在 Project70.exe 中的0x0F4D514F (vcruntime140d.dll) 引发异常:0xC000
- 在0x5914F3BE抛出异常(基于.dll)
- 使用 C++ dll 运行 c# 应用程序会生成无法加载异常
- 核心消息传递中未处理的异常.dll在程序关闭期间
- 在 Hello World.exe 中0x0F828F0E (ucrtbased.dll) 处未处理的异常: 0xC00
- Windows错误:异常:使用从C++到Python的ctypes创建DLL时出现访问冲突或Windows错误193
- 如何在C++中修复PyImport_Import(python35.dll中的异常)
- 加载C DLL文件时,如何修复异常_access_violation
- 实验室中0x6BE20E11 (ucrtbased.dll) 的未处理异常.exe: 0xC0000005:访问冲突读取
- 在 "<name>.exe" 中0x00007FFF168E1657 (vcruntime140d.dll) 引发异常:0xC0000005:访问冲突写入位置0x0000000000000
- mystring.exe中的0x0FC9E559(ucrtbaseed.dll)的未经手法异常:0xc0000005:访
- 当应用程序在不同系统上运行时,无法加载DLL异常