C ++设置dll搜索位置

时间:2013-12-22 20:02:27

标签: c++ c++11 sdl

我目前正在开发一个带有SDL的C ++应用程序,它需要DLL才能工作。现在,它只会在与程序相同的文件夹中找到DLL。如何在名为“libs”的子目录中进行程序搜索。

2 个答案:

答案 0 :(得分:1)

Environment Variables中添加dll文件夹路径(请注意其中的路径以;分隔)。

答案 1 :(得分:1)

如果使用加载时链接,则需要将DLL放在DLL搜索路径中。这在此处记录:Dynamic-Link Library Search Order。通常,这需要您将DLL文件夹添加到PATH环境变量。现在,向PATH环境变量添加文件夹是解决问题的重要方法。你肯定不想这样做。

另一方面,如果切换到运行时链接,则可以将DLL的完整路径传递给LoadLibrary。您可以调用GetModuleFileName来查找可执行文件的文件名,然后拉出目录,然后添加\libs\MyDll.dll。但是,运行时链接的一大缺点是您需要对导入的每个函数使用GetProcAddress

这些选项都不是特别有吸引力。我的建议是改变你提出的设计。将可执行文件所需的所有DLL放入与可执行文件相同的目录中。