странности с сигналами и слотами в qt dll

 
0
 
C++
ava
qtshnik | 20.03.2013, 17:21
Имеется приложение, написанное на Qt и существующее в виде единого проекта в Visual Studio. Пытаюсь разделить этот проект на несколько проектов, чтобы каждый собирался в свою dll, а главный проект в exe. И тут возникает странная дилемма. Если собираю под Release, то все работает, как надо, без нареканий. А если под Debug, то возникает куча проблем. Во-первых, перестают соединяться сигналы из exe со слотами в dll. Во-вторых, не хотят работать сигналы dll, посылаемые слотам внутри dll: програма падает и выдает Access Violation. В-третьих, куда-то пропали русские буквы и заменились на кракозябры. В-четвертых, после вызова деструктора объектов, экспортируемых из dll и содержащих сигналы и слоты, программа падает снова с Access Violation. Наверное, этот список можно продолжать и удивляться. Настройки компилятора и линкера в Visual Studio проверил, они вроде адекватные. Что вообще происходит?
Comments (6)
ava
borisbn | 20.03.2013, 16:28 #
Абсолютно уверен, что и exe и все dll-ки собраны под Debug ? Не может быть, чтобы exe-шник был в Release, а dll-ки в Debug ? Если так, то и не должно работать, т.к. Qt-шные классы сильно отличаются в режиме Debug и Release
ava
qtshnik | 20.03.2013, 16:33 #
Ну а как здесь можно ошибиться? просто посмотреть Configuration Properties для solution'а
ava
Jeka178RUS | 20.03.2013, 17:25 #
Добавь постфикс d для дебага, тогда точно не ошибешься
ava
qtshnik | 20.03.2013, 17:36 #
там и по размеру файла неплохо видно
ava
qtshnik | 20.03.2013, 18:21 #
проблема решена. В AdditionalDependencies вместо QtCored4.lib стояло QtCore4.lib. Ошибка в одной букве так печальна! 
ava
Jeka178RUS | 21.03.2013, 13:25 #
Вот тебе и попалась релизная либа вместо дебажной
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit