如何在dll中使用静态成员和单例?

时间:2010-09-03 16:14:30

标签: windows dll mingw

实际上我正在研究Linux项目的Windows(MSYS / MinGW)迁移。使用Linux一切正常,但是对于windows,我遇到了静态成员和单例的麻烦,这些成员和单例必须在不同dll的上下文中使用。

即。我有一个配置映射器,它是config.dll中的单例构建。如果我在不同的其他DLL中使用这个DLL,任何DLL都有它自己的实例。有没有办法分享这些dll之间的单例访问?

我在dll之间使用静态成员也失败了。如果我调用一个vector类的静态成员,它被放置在math.dll中的任何其他dll中,我在make期间收到了这条消息:

Linking CXX shared library ../../lib/libbrGraphics.dll
Info: resolving binrev::brMath::brVector3f::NEGATIVE_UNIT_Z      by linking to   
__imp___ZN6binrev6brMath10brVector3f15NEGATIVE_UNIT_ZE (auto-import)

知道任何人的解决方案吗? 最好的祝福, 克里斯

1 个答案:

答案 0 :(得分:-1)

DLL是一个库,如果要共享配置数据,则必须将单例映射到共享内存映射或使用其他一些RPC机制。您不希望其他人的计算机上的错误日志填满您打印到stderr的内容吗?

相关问题