gpt4 book ai didi

c++ - 我如何通知独立的应用程序依赖 DLL 的位置?

转载 作者:行者123 更新时间:2023-11-28 08:27:39 25 4
gpt4 key购买 nike

我正在编写几个独立的应用程序,它们都依赖于我和团队编写的 dll。当我们只有几个 dll 但构建输出目录变得相当困惑且难以导航时,一切都很好。我最终希望输出构建目录包含以下结构:

  • $(OutDir)
    • --(应用程序.exe)
    • --(应用程序.exe)
    • --库文件夹
      • --(LibA.dll)
      • --(LibB.dll)
      • (等)

有没有办法让应用程序在运行时使用 list 文件之类的东西在“Libs 文件夹”中查找这些库?

最佳答案

Dynamic-Link Library Search Order描述了您必须修改搜索路径的可能性。它描述了搜索顺序并提到了 manifestsSetDllDirectory()作为改变搜索顺序的可能性。

虽然 SetDllDirectory 看起来很有前途,但它只有在您动态加载 DLL 时才能可靠地工作,而根据我的理解,您不会这样做。

现在,关于使用 list :Application Configuration Files讨论了 privatePath 属性,该属性可用于[指定] 可能包含程序集的应用程序基目录的子目录的相对路径。在我看来,它似乎只适用于并排装配,但您可能想试一试。

我很乐意承认我从来没有为 list 烦恼过(除了你需要在 VS 2005 中了解什么才能让任何东西运行)并且我建议隐式地跳过库子目录的想法 加载 DLL 并将它们放在应用程序目录中并完成它。对于显式(动态)加载的 DLL,您可以从可执行文件路径中推断出它们的完整路径并将其提供给 LoadLibrary(),而无需为搜索路径操心。

关于c++ - 我如何通知独立的应用程序依赖 DLL 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364082/

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