QLibrary зависает при вызове метода загрузки - PullRequest
0 голосов
/ 26 марта 2019

Существует большой проект, состоящий из нескольких компонентов, представленных в виде 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( ));
    }
}

Проблема возникает только при отладке.Я использую Qt Creator, с msvc.

1 Ответ

0 голосов
/ 26 марта 2019

Проблема была в точках останова.Я не понимал, как они повлияли на работу проекта, но после устранения всех точек останова и реструктуризации компонента с нуля проблема исчезла.

Буду признателен, если кто-то объяснит причину такого поведения.

...