c++ - DLL中静态变量的状态

标签 c++ windows dll

场景:

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

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

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

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

最佳答案

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

关于c++ - DLL中静态变量的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4030067/

相关文章:

c++ - win32程序如何在单个窗口中添加多个工具栏?

c++ - 导出一个类应该有所作为吗?

windows - OpenCV 2.3 (C++,QtGui),初始化一些特定的 USB 设备和设置时出现问题

windows - 如何传递具有 "Windows App Certification Kit - Test"的 UWP 应用程序的 "Restricted namespace"?

c# - 从托管 C++ DLL 使用 C# 程序集时崩溃

C++ 数据结构堆

.net - Windows Xperf diskio 操作不显示程序在性能跟踪 session 期间读取的文件

windows - 是否有适用于 Windows 的 Linux'/lib/ld-linux.so 的开源等效项?

c++ - Racket 作为游戏引擎中的脚本语言

c++ - C++ 中的链表、多项式、重载运算符 << 和 >>