2

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

我的项目在C:/Project. 如果我同时保留A.dllB.dllC:/Project我可以加载A

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

这工作正常。但是,如果不在 in 中,load()将返回 false 。B.dllC:/Project

问题是我想同时保留A.dllB.dllC:/Project/lib但是当我将两个库移动到该位置并尝试加载时:

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

它失败。但是,如果我保持A.dllinC:/Project/libB.dllin ,这将有效C:/Project

如何保留两个库C:/Project/libA.dll成功加载?

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

4

2 回答 2

2

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

于 2014-03-12T20:19:51.017 回答
0

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

于 2014-10-22T12:25:35.793 回答