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

2024-01-08

我知道这已经在此处讨论过,但我没有找到我想要的问题,即:我有一个使用大量(超过 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路径设置为abslote,这样就不需要搜索并且可以轻松导入dll,但是如果您想将应用程序移动到另一台计算机上,则会出现很多问题(例如HINSTANCE hDLL = LoadLibrary(L"C:\\mydll.DLL");) 。其次,您可以给出相对于运行目录的 dll 路径(不是应用程序路径,这两个路径可能不同),并且您还可以为其指定目录(例如HINSTANCE hDLL LoadLibrary("..\\dlls\\mydll.dll")

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在单独的目录中运行带有 DLL 的 .exe? 的相关文章

随机推荐