我在wince 6.0中有c ++库,有一些全局变量。该库已与c ++ DLL链接。当我期望应用程序并调用DLL时。首先,它引入了静态库的所有全局变量,但是当控制权回到DLL时又回到了静态库。它重置所有全球价值。有人对此有想法吗?
最佳答案
如果已将两个DLL与静态库链接在一起,则意味着您具有该库中所有代码和变量的两个副本。
要解决此问题,您应该将静态库转换为DLL。这可以通过一个由module.def
文件和链接程序调用组成的简单项目来完成。
然后,不要将DLL与静态库链接,而是将其与DLL链接。
或者,将项目合并为一个DLL,而不是使用两个dll。
请注意,可以将两个模块与相同的静态库链接在一起,前提是您了解并接受不会共享数据。
关于c - 从DLL调用后重置静态lib全局值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16010860/