gpt4 book ai didi

dll - 加载时和运行时动态链接之间的区别

转载 作者:行者123 更新时间:2023-12-04 05:28:09 24 4
gpt4 key购买 nike

加载时动态链接和运行时动态链接有什么区别?

最佳答案

加载时动态链接

当可执行文件在构建时链接到 DLL 时,链接器不会插入目标代码,而是插入 stub 这基本上是说这个名字的函数位于这个 DLL 中。

现在,当可执行文件运行时,可执行文件的位将丢失(即 函数 stub )所以在允许程序运行之前,程序加载器通过将它们替换为入口点来修复这些丢失的函数DLL 文件。

只有在所有 stub 都被替换(即解析)之后,可执行文件才被允许运行。

那就是加载时动态链接。

运行时动态链接

在这种情况下,可执行文件没有链接到任何 DLL 库文件,因此它不会在 dll 中包含任何 stub ,因此程序加载器在运行可执行文件时没有问题。

但是从 DLL 内部访问函数的任务留给可执行文件,可以使用 来完成。 GetProcAddress 视窗 API。

那就是运行时动态链接。

关于dll - 加载时和运行时动态链接之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/552248/

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