gpt4 book ai didi

dll - 为什么有些程序需要 .lib 和 .dll 才能工作

转载 作者:行者123 更新时间:2023-12-01 13:42:42 26 4
gpt4 key购买 nike

当我准备为 (SDLSimple DirectMediaLayer) 设置我的开发环境时,我下载了网站提供的包,来自readme.txt我发现我需要两个文件 .lib.dll ...
我的问题是:

  • 我不确定我的理解是否正确:在我看来,.libwindows就像 .alinux , 是 静态库 , 和 .dllwindows就像 .solinux , 是 共享库 , 这样对吗 ?
  • 如果上面的想法是正确的,我想我们只能使用.lib.dll ,既然他们做的工作是一样的?那么为什么要同时获得两个 在一个程序中 ?
  • 而且我不太明白.dll , 如果我的内存是正确的,这是 shared library 的优势之一它们是否可以在程序运行时更新,那么如果我们更新 .dll,人们怎么能做到这一点?文件,怎么能正在运行的程序 了解.dll的变化并将其重新加载到内存中?
  • 最佳答案

    在 VC 中,有两种库。

    第一种是“真正的库”,由“静态库项目”生成,里面包含了所有可以链接和运行的东西,没有dll。

    第二种是“导入库”,由“dll工程”生成,只包含link.exe需要的符号。您可以链接到该库,但您需要运行 dll。

    有两种方法可以使用 dll。链接到“导入库”或“使用 LoadLibrary API”。

    加载 dll 时不能更改 dll 文件。

    但是如果你使用LoadLibrary加载dll,你可以使用FreeLibrary卸载dll,更改dll,然后使用LoadLibrary加载新的dll。当然,您需要监视一些东西来调用这个过程。

    更简单的方法是,使用加载程序进行更新,然后加载真正的 exe。

    关于dll - 为什么有些程序需要 .lib 和 .dll 才能工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38602618/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com