首先,我发现这篇文章对动态链接库非常有趣且简洁明了(本文仅适用于Linux,但是这些概念当然也适用于Windows,您可能会对自己的不同行为有所了解。看到)。尤其是静态和动态加载之间的根本区别。
我认为您想要或正在尝试实现的是“跨模块单例”模式。如果您阅读了该主题的答案,那么我不知道如何比Ben
Voigt回答该帖子更好地回答您的问题。之前(实际上是几次),我已经使用他描述的方法实现了一个跨模块的单例,它的工作原理很吸引人。
当然,仅将全局变量放在cpp文件中就不能保持其清洁性。您将必须使用静态指针以及一些访问器函数和引用计数。但是可以。我不太确定如何避免foo.exe和foo.exe在一个bar.dll中共享相同的全局数据实例,我从没有这样做,也没有真正想出一种方法抱歉



