QLibrary冻结呼叫加载方法

时间:2019-03-26 09:58:18

标签: qt visual-c++ qt-creator

有一个大项目,由几个组件组成,以dll的形式表示。在一个组件中,我使用QLibrary来调用代码。以前,一切正常,加载了dll,一切正常,但是,在对dll代码进行更改并重新编译之后,在其中一种启动中,当我调用load方法时,程序只是挂起了。

我试图清理整个项目并从头开始重建它,但是当我调用boot方法时,执行会不断停止。它不会给出任何错误。在加载之前调用的isLibrary确认已正确选择了库。

void libLoad( QLibrary &lib, const QString &fileName ) {

    lib.setFileName( fileName + dllVersionString );

    auto name = lib.fileName( );    //just to make sure the name is correct
    auto isLibrary = lib.isLibrary( fileName + dllVersionString );  //just to make sure dll is found

    if ((lib).load( )) { //work stops here
        qDebug( ) << QString( "library " + lib.fileName( ) + " loaded" );
    } else {
        throw QString( QString::fromLocal8Bit( "Failed to load library " ) + lib.fileName( ));
    }
}

仅在调试时出现问题。我在MSVC中使用Qt Creator。

1 个答案:

答案 0 :(得分:0)

问题出在断点。我不了解它们如何影响项目的工作,但是在消除了所有断点并从头开始重构组件之后,问题就消失了。

如果有人解释这种行为的原因,我将不胜感激。

相关问题