在DLL中包装类的优点

Ass*_*evy 6 c++ dll export

我刚刚在我的项目中完成了一个阶段,在那里我编写了一个小型基础架构来执行某个任务,由一个带有几个辅助类的核心类组成.C++'是非常基本的 - 单继承,一些STL容器,就是这样.没有线程 - 客户端运行该节目.

我现在要做的是将它全部包装在DLL中,对其进行版本化,并将其作为独立单元使用.我希望能够更好地跟踪变化和发展,也许还有其他项目.

由于我没有DLL中的类的经验,我想听听你的:你对这个问题的处理方法是什么?

特别:

  • 这值得吗?
  • 你经常这样做或者根本不这样做?
  • 那些兼容性问题(比如使用不同编译器编译的客户端)?

我不是真的要求辩论(虽然这可能是结果),而是经验的建议.

谢谢你的时间.

Dav*_*nan 2

我发现很难看出这有什么好处。我可以看到很多问题:

  • 没有跨 DLL 边界的类型检查。任何版本不匹配都会导致运行时故障,比编译时故障更难检测。
  • 额外的部署难题。您可能会想要更新一些但不是全部模块,因此要处理复杂的依赖关系。
  • 所有想要使用这些 DLL 的客户端都必须使用相同的编译器。

仅当您能确定好处大于坏处时才进行此更改。