gpt4 book ai didi

c++ - 如何在单独的目录中运行带有 DLL 的 .exe?

转载 作者:可可西里 更新时间:2023-11-01 18:38:46 26 4
gpt4 key购买 nike

我知道这已经在这里的某处讨论过,但我没有找到我想要的问题,即:我有一个使用大量(超过 20 -30 个)DLL 的 C++ 应用程序。我在我的 Visual Studio 2010 项目中定义了 .exe 将被复制到 ProjectDir(以便一切都整齐清晰)但是当 .exe 单独站在 ProjectDir 中时,它无法访问存储在 bin 中的 DLL。//任何文件夹以及许多其他文件。

我能否以某种方式指向 DLL 文件夹,以便应用程序知道它们所在的位置? (并且 <myapp>.exe.local 文件夹在我的 Windows 7 中不起作用)

最佳答案

首先,无需将 exe 文件复制到项目目录,无论在调试项目时创建 .exe 文件的何处,运行目录都将是项目目录。之后,当您尝试导入 dll 时,如果您相对于 Windows 首先在您的运行目录中搜索该 dll,然后它检查它是否可以在定义的系统 PATH 变量的任何目录中找到该 dll,但是如果您检查对于绝对地址,将不会查找。

所以第一个技巧是将所有 dll 路径设置为绝对路径,这样就不会进行搜索,并且可以轻松导入 dll,但是如果您想将应用程序移动到另一台计算机(例如 HINSTANCE hDLL = LoadLibrary(L"C:\\mydll.DLL");).其次,您可以提供相对于运行目录的 dll 路径(不是应用程序路径,这两个路径可能不同),您还可以为此指定目录(例如 HINSTANCE hDLL LoadLibrary("..\\dlls\\mydll .dll")

关于c++ - 如何在单独的目录中运行带有 DLL 的 .exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5765986/

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