用QLibrary加载带有依赖关系的库



假设我有两个库,A.dllB.dll。库A依赖于B。我想加载A到我的项目。

我的项目在C:/Project。如果我在C:/Project中保留A.dllB.dll,我可以加载A:

QLibrary lib("A"); 
lib.load();

这很好。如果B.dll不在C:/Project中,则load()将返回false。

问题是我想在C:/Project/lib中保留A.dllB.dll。但是当我将两个库移动到那个位置并尝试加载:

QLibrary lib("C:/Project/lib/A");
lib.load();

它失败。但如果我在C:/Project/lib中保留A.dll,在C:/Project中保留B.dll,则此工作有效。

我如何保持两个库在C:/Project/lib,并有A.dll加载成功?

编辑:我得到的错误信息是"Cannot load library C:/Project/lib/A . The specified module could not be found."

尝试使用SetDllDirectory,参见http://msdn.microsoft.com/en-us/library/ms686203%28VS.85%29.aspx

您应该将C:/Project/lib的路径添加到您的系统环境中,或者从QT Creator的Projects选项卡编辑path变量(将路径添加到您的库中)

相关内容

  • 没有找到相关文章

最新更新