c++ - 如果 C++ 共享库在 C 项目中抛出异常会发生什么

标签 c++ c exception shared-libraries

<分区>

我正在使用 C API 编写共享库,但大多数代码是用 C++ 编写的。 在某些地方我想抛出异常,但我不知道如果第三方开发人员想要用纯 C 编写项目会发生什么。

当 C++ 共享库在纯 C 项目中抛出异常时会发生什么?

最佳答案

这不是个好主意。你肯定会泄漏内存。

一个明智的选择是在您的 C++ 库中有一个捕获站点,它填充线程特定的错误信息对象并重构每个接口(interface)函数以具有返回状态代码以表示已生成错误。 (参见 Microsoft 的组件对象模型 HRESULT 和 IErrorInfo)。然后,您提供调用您的库以提取错误详细信息的函数。

关于c++ - 如果 C++ 共享库在 C 项目中抛出异常会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21602326/

相关文章:

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

java - 类里面出现异常

c++ - Cmake 无法识别 MSVC 编译器

c - 具有相同成员类型的 C 结构是否保证在内存中具有相同的布局?

c - 通过管道发送 C 命令行参数

c - 如何组合两个字符类型变量

c++ - 更改娜娜列表框中的值

c++ - 在 C++ 的析构函数中关闭连接

c++ - 如何从 Windows 8 C++/WinRT 组件使用 OutputDebugString

exception - Ada 83 异常是否包括资源清理?