假设你有两个 dll
Dll A 和 Dll B
它们都静态链接到静态库(即 .lib 文件)。我们称该库为 L。
我知道 L 完全链接到 A 和 B,分别有效地创建了 LA 和 LB。但是,当来自 LA 的对象 O 从 A 传递到 B 时会发生什么?我假设在 A LA 中执行代码,而在 B LB 中执行代码,因为链接就是这样发生的。如果在 A 中创建 O,卸载 A,然后在 B 中使用 O,会发生什么坏事?
最佳答案
静态库只是目标文件的集合。当你链接一个静态库时,一切都发生了,就好像静态库的代码已经包含在你的代码中一样。
所以如果静态库中有全局变量,每个DLL都会得到自己的拷贝,这可能是你想要的,也可能不是你想要的。
关于c++ - 让两个 dll 共享一个静态库的陷阱是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7340628/