Dll加载订单

use*_*508 1 dll winapi visual-c++

如果我在A.dll中有全局变量,这取决于B.dll中的全局变量,是否保证B.dll将在A.dll之前加载?我在Visual Studio中制作了两个示例dll项目,并将A.dll与B.dll链接,似乎首先加载了B.dll.所以这种行为是否有保证?

JSB*_*ոգչ 6

操作系统保证了这种行为,因为否则就不可能编写正确的dll加载代码.特别是,如果是A.dll导入B.dll,那么当动态链接器尝试加载时A.dll,它将首先看到该依赖关系并加载B.dll到进程中.

  • 创建具有循环依赖关系的dll是可能和合法的.在这种情况下,所有投注都是关闭加载顺序的. (2认同)