<分区>
我正在使用 C API 编写共享库,但大多数代码是用 C++ 编写的。 在某些地方我想抛出异常,但我不知道如果第三方开发人员想要用纯 C 编写项目会发生什么。
当 C++ 共享库在纯 C 项目中抛出异常时会发生什么?
<分区>
我正在使用 C API 编写共享库,但大多数代码是用 C++ 编写的。 在某些地方我想抛出异常,但我不知道如果第三方开发人员想要用纯 C 编写项目会发生什么。
当 C++ 共享库在纯 C 项目中抛出异常时会发生什么?
最佳答案
这不是个好主意。你肯定会泄漏内存。
一个明智的选择是在您的 C++ 库中有一个捕获站点,它填充线程特定的错误信息对象并重构每个接口(interface)函数以具有返回状态代码以表示已生成错误。 (参见 Microsoft 的组件对象模型 HRESULT 和 IErrorInfo)。然后,您提供调用您的库以提取错误详细信息的函数。
关于c++ - 如果 C++ 共享库在 C 项目中抛出异常会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21602326/