从dll到静态库导出类的好处

Ste*_*eve 2 c++ dll

我现在正在写一个C++类,它将在我正在研究的项目中使用.我可以选择将它放在静态库中,或从dll导出类.每种方法有哪些好处/处罚.我唯一能想到的是编译代码大小,我并不在乎.谢谢!

Bri*_*ndy 9

DLL的优点:

  • 您可以使用多个不同的exe来访问此功能,因此您将拥有较小的项目大小.
  • 您可以动态更新组件而无需替换整个exe.如果你这样做,但要小心界面保持不变.
  • 有时像LGPL一样,你被迫使用DLL.
  • 您可以将一些组件作为C#,Python或与您的DLL绑定的其他语言.
  • 您可以构建使用DLL的程序,这些程序可以使用不同版本的DLL.例如,您可以检查某个操作系统DLL中是否存在某个函数,并且仅在它存在时调用它,否则执行其他一些处理.

静态库的优点:

  • 你不能用这种方式来解决问题
  • 分发较少,如果您只有一个小应用程序,则不会强制使用完整的安装程序.
  • 您不必担心其他任何人如果它是一个DLL就可以访问您的代码.
  • 更容易开发静态库,因为您不必担心导出和导入.
  • 内存管理更容易.

  • 避免DLL版本问题的一种方法是将版本号添加到DLL文件的名称(例如,作为后缀,如`mydll300.dll`). (2认同)