QLibrary 没有加载 DLL

QLibrary is not loading DLL

我想在 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); 
    }
}

检查错误。

QString QLibrary::errorString() const

Returns a text string with the description of the last error that occurred. Currently, errorString will only be set if load(), unload() or resolve() for some reason fails.

可能有很多原因,无法根据此处提供的详细信息进行诊断。

比如:使用Qt的进程是64位的,DLL是32位的。或相反亦然。另一个:DLL 依赖于 QLibrary 不可用的其他 DLL。我对您的建议:使用 dependency walker 或类似的实用程序来诊断这些问题。