【问题标题】:Why using LIB in C++ static DLL linking?为什么在 C++ 静态 DLL 链接中使用 LIB?
【发布时间】:2013-04-03 09:41:32
【问题描述】:

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

【问题讨论】:

标签: c++ dll static-linking


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-02
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多