gpt4 book ai didi

c++ - 以编程方式自定义 DLL 搜索目录

转载 作者:行者123 更新时间:2023-11-30 02:47:15 26 4
gpt4 key购买 nike

我正在用 C++ 编写 DLL。我的 DLL 将与第三方软件一起运行。它加载另一个 DLL(我们称它为 LDLL)并且这个 LDLL 使用 openssl。

但是每当我的 DLL 尝试加载我的 LDLL 时,它都会返回错误代码 126。

我用 dependency walker 运行了我的 LDLL它显示缺少 openssl dll(ssleay.dll 和 libeay.dll)。它正在一些 standard folders 中搜索这些.

是否有任何方法可以通过编程方式将我自己的搜索路径包含在 LDLL 中,从而将 openssl DLL 加载到我自己的搜索路径中?

最佳答案

来自 the LoadLibrary documentation :

The search path can be altered using the SetDllDirectory function. This solution is recommended instead of using SetCurrentDirectory or hard-coding the full path to the DLL.

但要注意:

Each time the SetDllDirectory function is called, it replaces the directory specified in the previous SetDllDirectory call. To specify more than one directory, use the AddDllDirectory function and call LoadLibraryEx with LOAD_LIBRARY_SEARCH_USER_DIRS.

另一种方法是使用这些库的延迟加载,并在使用它们的函数之前使用 LoadLibraryLoadLibraryEx 显式加载它们。

关于c++ - 以编程方式自定义 DLL 搜索目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22850729/

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