【问题标题】:State of static variable in DLLDLL 中静态变量的状态
【发布时间】:2010-10-27 04:54:57
【问题描述】:

场景:

我的应用程序绑定了一个具有静态类的 library X。我在我的过程中初始化它。 一段时间后,当我加载一个也使用相同 library X 的 dll 时。

我看到 dll 中的静态变量的内容未初始化在加载 DLL 之前,我已经在进程中对其进行了初始化

我在 DLL main 中添加了初始化代码,它现在可以工作了。

问题:我需要了解这种行为/案例。

【问题讨论】:

  • 调试器会告诉你发生了什么。

标签: c++ windows dll


【解决方案1】:

库 x 显然作为静态库链接到 exe 和 dll :- 为了获得您想要的行为,库 X 本身需要构建为共享库。因此,“my application.exe”和“a.dll”都将使用“libraryx.dll”,结果只有一个静态值实例。

【讨论】:

  • 同意,我在编写一个包含静态记录器(单例)的日志库时遇到过这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多