我知道如何实现静态和运行时dll链接,但我更感兴趣的是为什么在静态dll链接中需要dll的LIB(静态库)?通常LIB注意到但是代码容器(方法实现),但是比较静态dll链接和运行时dll链接(LoadLibrary,GetProcAddress ...)我得到的印象是LIB用于以某种方式获取dll过程地址?也许我完全错了,我不知道......
答案 0 :(得分:0)
与DLL一起使用的LIB库包含“存根”,用于“连接”您使用DLL中的代码编写的代码。通常,它只是共享库中实际代码的“跳转指令”。它还包含对要使用的实际共享库的引用,以便将可执行文件引入内存的加载器可以在此时加载相关的共享库。
当您使用运行时链接来使用共享库时,您的代码负责加载库,并解析正在使用共享库中的哪些函数。