QLibrary зависает при вызове метода загрузки

#qt #visual-c #qt-creator

#qt #visual-c #qt-creator

Вопрос:

Существует большой проект, состоящий из нескольких компонентов, представленных в виде dll. В одном компоненте, который я использую QLibrary , для вызова кода из. Ранее все работало хорошо, dll загружалась и все работало корректно, однако, после внесения изменений в код dll и его перекомпиляции, при одном из запусков, когда я вызываю метод load, программа просто зависает.

Я пытался очистить весь проект и перестроить его с нуля, но когда я вызываю boot метод, выполнение постоянно останавливается. Он не выдает никаких ошибок. isLibrary , вызванный перед загрузкой, подтверждает, что библиотека выбрана правильно.

 void libLoad( QLibrary amp;lib, const QString amp;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. Добро пожаловать в Stack Overflow! Пожалуйста, поделитесь соответствующими частями вашего кода. Без этого мы не сможем вам помочь.

Ответ №1:

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

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