gpt4 book ai didi

c++ - DLL依赖问题/SetDLLDirectory

转载 作者:可可西里 更新时间:2023-11-01 09:41:44 26 4
gpt4 key购买 nike

我有以下情况,想不出什么好办法。

我在 C:\ProgFiles\MyApp 中安装了一个 C++ 应用程序 (app.exe)。它需要一堆 DLL,我安装在 C:\ProgFiles\MyApp\bin 中。我想将它们放在一个子文件夹中,因为它们太多了。

现在,当我启动 app.exe 时,需要让 Windows 知道所需 DLL 的位置。过去我为此使用 PATH 环境变量,但我不能再这样做了,因为我将使用单独的安装程序创建另一个应用程序,它使用许多具有相同名称的 DLL。

我想在应用程序的开头调用 SetDLLDirectory - 但我忘记了,因为缺少所需的 DLL,它在到达那里之前就失败了。

有什么建议吗?

最佳答案

参见 this article来自 Microsoft,其中讨论了 DLL 搜索路径和相关问题。

请特别注意,如果您不将它们放在应用的目录中,则当前目录 优先,这是一个安全漏洞。

一种解决方案是使用 LoadLibrary(具有完全限定路径),然后使用 GetProcAddress。那会有点痛苦。

没有普通用户会在 C:\Program Files\YourApp 中四处挖掘,除非你有充分的理由不这样做,否则你应该把它们放在那里。

关于c++ - DLL依赖问题/SetDLLDirectory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740670/

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