我在wince 6.0中有c ++ libary,有一些全局变量。该库已与DLL链接,即c ++。当我执行应用程序并调用DLL。首先它静态化了静态库的所有全局变量,但是当控制回到DLL到静态库时。它重置所有的glbal价值。有没有人对此有所了解。
答案 0 :(得分:0)
如果您将两个DLL与静态库链接在一起,这意味着您有两个库中所有代码和变量的副本。
要解决此问题,您应该将静态库转换为DLL。这可以通过一个由module.def
文件和链接器调用组成的简单项目来完成。
然后,不要将您的DLL与静态库链接,而是将它们与您的DLL链接。
或者,不要使用两个dll,而是将项目组合成一个DLL。
请注意,只要您理解并接受不会共享数据,就可以将两个模块链接到同一个静态库。