2013-04-11 86 views
1

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

+0

http://en.wikipedia.org/wiki/Dynamic-link_library#Import_libraries – 2013-04-11 09:07:17

+4

你是对的。使用静态库的LIB文件包含代码。使用动态库(DLL)时,LIB文件仅包含链接器在DLL中查找函数所需的信息。 – 2013-04-11 09:08:25

+0

Thx。这就是我想知道的。 – Tracer 2013-04-11 09:10:43

回答

0

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

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

相关问题