DLL中的静态变量状态

时间:2010-10-27 04:54:57

标签: c++ windows dll

情境:

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

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

我在DLL main中添加了初始化代码,现在正在使用它。

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

1 个答案:

答案 0 :(得分:1)

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