我开发了一个依赖于DLL文件的应用程序。当我调试我的应用程序时,应用程序会抱怨:
“此应用程序无法启动,因为找不到xxx.dll。”
所以我必须将DLL文件复制到与.vcproj文件相同的目录中。
有没有办法设置项目在(最好)某个相对路径或(不是首选)某个绝对路径中查找DLL文件?
与我们如何在项目设置中设置包含和库路径类似的概念。
我的意思是当我调试我的应用程序时(点击 F5 )会弹出上述错误。
答案 0 :(得分:165)
PATH=%PATH%;$(ProjectDir)\some-framework\lib
或前置路径PATH=C:\some-framework\lib;%PATH%
答案 1 :(得分:8)
使用SetDllDirectory()函数可以更改调用LoadLibrary()时加载程序使用的搜索路径。因此,您可以在加载之前调用它并添加路径到您的依赖项。
答案 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)"
答案 5 :(得分:-1)
我知道这个问题已在多年前得到解答,但对于那些需要更改调试器启动应用程序的人来说,更改项目属性下的命令属性 - >调试。