gpt4 book ai didi

c++ - 让两个 dll 共享一个静态库的陷阱是什么?

转载 作者:可可西里 更新时间:2023-11-01 11:00:01 26 4
gpt4 key购买 nike

假设你有两个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com