当前位置:  开发笔记 > 开发工具 > 正文

加载时间和运行时动态链接之间的差异

如何解决《加载时间和运行时动态链接之间的差异》经验,为你挑选了1个好方法。

Load-time动态链接和Run-time动态链接有什么区别?



1> jussij..:

加载时动态链接

当可执行文件在构建时链接到DLL时,链接器将不会插入目标代码,而是插入一个存根,该存根基本上表示此名称的函数位于此DLL中.

现在,当运行可执行文件时,可执行文件的位将丢失(即函数存根),因此在允许程序运行之前,程序加载程序通过将它们替换为DLL文件中的入口点来修复这些缺失的函数.

只有在所有存根被替换(即已解决)之后,才允许运行可执行文件.

那是加载时动态链接.

运行时动态链接

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

但是从DLL中获取函数的任务是留给可执行文件的,可以使用GetProcAddress Windows API 来完成.

那是运行时动态链接.

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有