我希望在C++程序中加载DLL并创建函数指针。为了避免任何混淆,我提供DLL的绝对路径。但是,DLL仍未加载。
我的代码:
void CallFunctionPointers()
{
QString strMsg;
QString strLibPath("D:\\dll\\AtmoRemote.dll");
QLibrary* m_p_lib = new QLibrary();
m_p_lib->setFileName(strLibPath);
if (!m_p_lib->load())
{
strMsg = QString("Could not load %1").arg(strLibPath); //<<<<-----------PROGRAM ALWAYS ENTERS HERE
}
else
{
strMsg = QString("Successfully loaded: %1").arg(strLibPath);
}
}发布于 2019-09-16 20:48:23
可能有很多原因,不可能用这里提供的细节来诊断。
例如:使用Qt的进程是64位,DLL是32位。反之亦然。另一个: DLL依赖于QLibrary不可用的其他DLL。我对您的建议是:使用依赖步行器或类似的实用程序来诊断这些问题。
发布于 2019-09-16 20:00:31
检查错误。
QString QLibrary::errorString() const 返回一个文本字符串,其中包含发生的最后一个错误的说明。目前,只有在load()、unload()或errorString ()由于某种原因失败时才会进行设置。
https://stackoverflow.com/questions/57963535
复制相似问题