如何在Visual Studio中设置DLL文件的路径?

时间:2010-01-22 18:33:26

标签: visual-studio visual-c++ dll

我开发了一个依赖于DLL文件的应用程序。当我调试我的应用程序时,应用程序会抱怨:

  

“此应用程序无法启动,因为找不到xxx.dll。”

所以我必须将DLL文件复制到与.vcproj文件相同的目录中。

有没有办法设置项目在(最好)某个相对路径或(不是首选)某个绝对路径中查找DLL文件?

与我们如何在项目设置中设置包含和库路径类似的概念。

我的意思是当我调试我的应用程序时(点击 F5 )会弹出上述错误。

6 个答案:

答案 0 :(得分:165)

  1. 转到项目属性(Alt + F7)
  2. 在调试下,向右看
  3. 有一个环境字段。
  4. 在那里添加您的相对路径(相对于vcproj文件夹),即.. \ some-framework \ lib,方法是附加PATH=%PATH%;$(ProjectDir)\some-framework\lib或前置路径PATH=C:\some-framework\lib;%PATH%
  5. 再次按F5(调试),它应该可以正常工作。

答案 1 :(得分:8)

使用SetDllDirectory()函数可以更改调用LoadLibrary()时加载程序使用的搜索路径。因此,您可以在加载之前调用它并添加路径到您的依赖项。

另见DLL Search Order

答案 2 :(得分:7)

浏览项目属性 - >参考路径

然后添加带有DLL的文件夹

答案 3 :(得分:4)

另一种可能性是将调试选项下的Working Directory设置为具有该DLL的目录。

编辑:我将提到使用批处理文件启动Visual Studio(并在批处理文件中设置PATH变量)。然后做了一些搜索,看到不久前问过这个完全相同的问题in this post。答案表明批处理文件选项以及显然可以完成工作的项目设置(我没有测试它)。

答案 4 :(得分:0)

在项目属性中(右键单击项目,然后单击属性按钮)▶配置属性▶构建事件▶发布构建事件▶命令行。

编辑一条指令并将其添加到命令行。 例如,将botan.dll从源路径复制到要执行该程序的位置。

copy /Y "$(SolutionDir)ProjectDirs\x64\Botan\lib\botan.dll" "$(TargetDir)"

Project Properties

答案 5 :(得分:-1)

我知道这个问题已在多年前得到解答,但对于那些需要更改调试器启动应用程序的人来说,更改项目属性下的命令属性 - >调试。