【问题标题】:How to use static members and singletons in dll's?如何在 dll 中使用静态成员和单例?
【发布时间】:2010-09-03 16:14:29
【问题描述】:

实际上,我正在对我们的 Linux 项目进行 Windows (MSYS/MinGW) 迁移。在 Linux 上一切正常,但在 Windows 上,我遇到了静态成员和单例问题,它们必须在不同 dll 的上下文中使用。

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

我在 dll 之间使用静态成员也失败了。如果我从任何其他 dll 调用放置在 math.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)

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

【问题讨论】:

    标签: windows dll mingw


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多