【发布时间】:2013-03-26 10:29:39
【问题描述】:
我正在创建一个供第三方使用的 C++ 库。虽然我熟悉创建 C 库,但我几乎没有创建 C++ 库的经验。我担心的是,我需要考虑 C++ 库 API 带来的其他问题。如:
- API 中的异常处理。
- 类成员对库创建的对象的用户访问权限
- 用户销毁库创建的对象,反之亦然。
- 谁知道还有什么...
除了 C 库必须考虑的之外,我还必须考虑什么?
最好的问候
【问题讨论】:
-
1.我会让其他人回答这个问题 2. 根本没有
public成员,如果用户需要访问某些类成员,请始终使用 seters/getter 3. 尽量避免强迫用户或您的库删除他/它没有的对象' t 创建 -
你必须考虑所有这些以及更多的合作学徒!异常处理显然是极其重要的一点。在此之前,您必须考虑您的所有客户端是否实际上都支持 C++,或者您可能必须考虑在边界处捕获异常并返回 C 类型的成功/失败。内存管理考虑也是最重要的——不确保包含的内存管理会使您陷入客户端不匹配的分配和释放堆的巨大困境。因此,虽然我可以添加的答案不多,但我也不认为有如此全面的列表
-
如果您面向 Windows,您的客户必须使用与您完全相同的编译器版本。这在 Linux 和 Mac OS X 上不是什么问题。Windows C++ API 上的 IME 不值得付出努力。该库可以用 C++ 编写,但只导出与 C 兼容的 API。
标签: c++ api shared-libraries static-libraries