我没有使用默认的Visual Studio项目路径来构建我的程序,因为我想模拟一个版本,并编写工具来搜索资源。在修改设置后,我有VS输出到正确的文件夹,并将DLL复制到主文件夹中的bin文件夹。但是,我无法获取它生成的.EXE来查找DLL,它只会找到它的目录中的内容,但我不想像那样凌乱。调试器工作正常,但它不能独立工作。我怎么告诉VS告诉.EXE在哪里找到它的DLL?我是否必须编辑PATH?这看起来很混乱,因为我从未有过这方面的好经验。我试过了Project Settings - > VC ++目录,但它仍然找不到它,因为我假设那是.LIB文件。
以下是我的文件夹层次结构图。
-root
--bin
--- [必需的DLL]
- 数据
--- [节目资源(图像,声音,配置等)]
--Program.exe
使用Visual C ++ 2010 Express Edition。
答案 0 :(得分:1)
如何告诉VS告诉.EXE在哪里找到它的DLL?
编辑发布运行配置并更改dll所在的工作目录。
你仍然需要通过ide来运行你的exe才能工作。
我是否必须编辑PATH?
没有
答案 1 :(得分:1)
这与Visual Studio无关。 Windows 无法找到DLL。它没有理由查看DLL的任意子目录。不清楚这些是否是隐式加载的DLL,或者您是否使用LoadLibrary自行加载它们。
如果使用LoadLibrary(),则没有太大问题,只需传递DLL的完整路径名即可。 GetModuleFileName(NULL,...)可帮助您构建路径字符串。如果隐式加载这些问题,你会遇到大问题。在这种情况下,没有什么理由不将DLL存储在与EXE相同的目录中。是的,你不想搞乱PATH环境变量。或者当前的工作目录。