Load-time动态链接和Run-time动态链接有什么区别?
加载时动态链接
当可执行文件在构建时链接到DLL时,链接器将不会插入目标代码,而是插入一个存根,该存根基本上表示此名称的函数位于此DLL中.
现在,当运行可执行文件时,可执行文件的位将丢失(即函数存根),因此在允许程序运行之前,程序加载程序通过将它们替换为DLL文件中的入口点来修复这些缺失的函数.
只有在所有存根被替换(即已解决)之后,才允许运行可执行文件.
那是加载时动态链接.
运行时动态链接
在这种情况下,可执行文件没有链接到任何DLL库文件,因此它不会在dll中包含任何存根,因此程序加载器在运行可执行文件时没有问题.
但是从DLL中获取函数的任务是留给可执行文件的,可以使用GetProcAddress Windows API 来完成.
那是运行时动态链接.