假设我有两个库,A.dll
和B.dll
。库A
依赖于B
。我想加载A
到我的项目。
我的项目在C:/Project
。如果我在C:/Project
中保留A.dll
和B.dll
,我可以加载A
:
QLibrary lib("A");
lib.load();
这很好。如果B.dll
不在C:/Project
中,则load()
将返回false。
问题是我想在C:/Project/lib
中保留A.dll
和B.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变量(将路径添加到您的库中)