#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:
Проблема была в точках останова. Я не понял, как они повлияли на работу проекта, но после устранения всех точек останова и реструктуризации компонента с нуля проблема ушла.
Я был бы признателен, если кто-нибудь объяснит причину такого поведения.