场景:
我的应用程序绑定(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/