从DLL调用后,静态lib全局值被重置

时间:2013-04-15 08:34:30

标签: c visual-c++ windows-ce

我在wince 6.0中有c ++ libary,有一些全局变量。该库已与DLL链接,即c ++。当我执行应用程序并调用DLL。首先它静态化了静态库的所有全局变量,但是当控制回到DLL到静态库时。它重置所有的glbal价值。有没有人对此有所了解。

1 个答案:

答案 0 :(得分:0)

如果您将两个DLL与静态库链接在一起,这意味着您有两个库中所有代码和变量的副本。

要解决此问题,您应该将静态库转换为DLL。这可以通过一个由module.def文件和链接器调用组成的简单项目来完成。

然后,不要将您的DLL与静态库链接,而是将它们与您的DLL链接。

或者,不要使用两个dll,而是将项目组合成一个DLL。

请注意,只要您理解并接受不会共享数据,就可以将两个模块链接到同一个静态库。