一段简单的代码
string dllName = "sample.dll";
QLibrary* lib = new QLibrary(dllName );
if (!lib ->load())
{
cout << "failed";
}
可执行文件和sample.dll在同一目录中。这段代码在32位或64位,Windows 7或Windows 10的不同机器上已经使用了很长时间。但是,最近,load()在一台机器上失败了。
lib.errorString()返回以下内容:无法加载库samplee.dll:找不到网络路径。不确定为什么存在网络路径。顺便说一句,该目录也位于系统环境的PATH中。
在运行此代码的普通计算机中,当我从目录中删除sample.dll时,lib.errorString()返回以下内容:“无法加载库sample.dll:找不到指定的模块。 “
此文件夹中没有DLL重定向或清单文件(此处介绍:DLL load order)。
当我将绝对路径添加到dllName的开头时,load()函数运行良好。
计算机是否可以更改Qt查找dll文件的方式?