0

我没有使用默认的 Visual Studio 项目路径来构建我的程序,因为我想模拟一个版本,并编写工具来搜索资源。修改设置后,我让 VS 输出到正确的文件夹,并将 DLL 复制到主文件夹中的 bin 文件夹中。但是,我无法获取它生成的 .EXE 来查找 DLL,它只会查找其目录中的内容,但我不想那样混乱。调试器工作正常,但不能独立工作。我如何告诉 VS 告诉 .EXE 在哪里可以找到它的 DLL?我必须编辑 PATH 吗?这似乎很混乱,因为我从来没有很好的经验。我已经尝试过项目设置-> VC++ 目录,但它仍然找不到它,因为我假设那是针对 .LIB 文件的。

这是我的文件夹层次结构图。

-root
--bin
---[必需的 DLL]
--data
---[程序资源(图像、声音、配置等)]
--Program.exe

使用 Visual C++ 2010 速成版。

4

2 回答 2

1

我如何告诉 VS 告诉 .EXE 在哪里可以找到它的 DLL?

编辑发布运行配置并更改 dll 所在的工作目录。

在此处输入图像描述

您仍然必须通过 ide 运行您的 exe 才能使其正常工作。

我必须编辑 PATH 吗?

于 2012-04-03T21:01:21.873 回答
1

这与 Visual Studio 没有任何关系。是Windows找不到 DLL。没有理由在任意子目录中查找 DLL。尚不清楚这些是隐式加载的 DLL,还是您使用 LoadLibrary 自己加载它们。

如果您使用 LoadLibrary(),则不会有太大问题,只需传递 DLL 的完整路径名即可。GetModuleFileName(NULL, ...) 帮助您构建路径字符串。如果这些是隐式加载的,你会有一个大问题。在这种情况下,应该很少有理由不将 DLL 存储在与 EXE 相同的目录中。是的,您不想弄乱 PATH 环境变量。或当前工作目录。

于 2012-04-03T21:04:12.517 回答