Windows:隐式链接位于不同文件夹中的 DLL

问题描述

我在非常广泛的谷歌搜索后问这个问题,但似乎没有全面的答案。我有一个 DLL 隐式加载另一个(第三方)DLL。如何创建清单/配置文件/其他任何内容以从另一个文件夹加载此第三方 DLL?

我为什么要这样做: 我的 C++ 程序(MSVC 编译)需要使用第三方 DLL(我认为它是一个 .NET 程序集,但我真的不了解这一切)。我使用#using“第三方DLL.dll”来访问这个DLL的类和函数。由于它是 .NET 程序集,因此我只能从托管代码中执行此操作。由于我的主程序是非托管 C++,我创建了一个加载第三方 DLL 的托管 DLL(使用 /clr 编译),然后动态加载这个托管 DLL。所以它看起来像这样:

C++ program (unmanaged) -> [LoadLibrary()] -> My managed DLL -> [#using directive] -> third-party .DLL

现在,我想把整个东西分发给用户,但我不喜欢第三方 .DLL 的许可。所以我在做的是要求用户安装另一个包含第三方DLL的软件包,然后要求他们将其复制粘贴到我的程序文件夹中。如果可以在我的托管 DLL 使用 LoadLibrary() 加载时以某种方式告诉 Windows 在哪里查找第三方 DLL,那就更好了。

任何想法如何解决这个问题?对不起,如果这是一个愚蠢的问题,我不明白所有这些 DLL 的东西。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)