我现在正在编写一个 C++ 类,它将在我正在处理的项目中使用。我可以选择将它放在静态库中,或者从 dll 中导出类。每种方法的好处/惩罚是什么。我唯一能想到的是我并不真正关心的编译代码大小。谢谢!
最佳答案
DLL 的优点:
- 您可以有多个不同的 exe 来访问此功能,因此您的项目总体规模会更小。
- 您可以动态更新您的组件,而无需替换整个 exe。如果您这样做,请注意界面保持不变。
- 有时就像 LGPL 一样,您被迫使用 DLL。
- 您可以将一些组件(例如 C#、Python 或其他语言)绑定(bind)到您的 DLL 中。
- 您可以构建使用不同版本 DLL 的 DLL 程序。例如,您可以检查某个函数是否存在于某个操作系统 DLL 中,并且仅在存在时调用它,否则进行一些其他处理。
静态库的优点:
- 那样你就不会遇到 dll verisoning 问题
- 较少分发,如果您只有一个小应用程序,则不会被迫进入完整的安装程序。
- 您不必担心任何其他人会绑定(bind)到您的代码中,如果它是一个 DLL 就可以访问。
- 更容易开发静态库,因为您无需担心导出和导入。
- 内存管理更容易。
关于c++ - 从 dll 与静态库中导出类的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1792578/