1

我知道如何实现静态和运行时 dll 链接,但我更感兴趣的是为什么静态 dll 链接需要 dll 的 LIB(静态库)?通常 LIB 只是一个代码容器(方法实现),但比较静态 dll 链接和运行时 dll 链接(LoadLibrary、GetProcAddress ...)我得到的印象是 LIB 用于以某种方式获取 dll 过程地址?也许我完全错了,我不知道..

4

1 回答 1

0

与 DLL 一起使用的 LIB 库包含“存根”,这些“存根”将您编写的代码与 DLL 中的代码“连接”起来。通常,它只是共享库中实际代码的“跳转指令”。它还包含对要使用的实际共享库的引用,以便将可执行文件引入内存的加载器可以在此时加载相关的共享库。

当您使用运行时链接来使用共享库时,您的代码负责加载库,并解析共享库中的哪些函数正在被使用。

于 2013-04-11T09:45:12.447 回答