Поиск:

Ответ в темуСоздание новой темы Создание опроса
> странности с сигналами и слотами в qt dll, разное поведение в debug и release 
:(
    Опции темы
qtshnik
Дата 20.3.2013, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.12.2010

Репутация: нет
Всего: нет



Имеется приложение, написанное на Qt и существующее в виде единого проекта в Visual Studio. Пытаюсь разделить этот проект на несколько проектов, чтобы каждый собирался в свою dll, а главный проект в exe. И тут возникает странная дилемма. Если собираю под Release, то все работает, как надо, без нареканий. А если под Debug, то возникает куча проблем. Во-первых, перестают соединяться сигналы из exe со слотами в dll. Во-вторых, не хотят работать сигналы dll, посылаемые слотам внутри dll: програма падает и выдает Access Violation. В-третьих, куда-то пропали русские буквы и заменились на кракозябры. В-четвертых, после вызова деструктора объектов, экспортируемых из dll и содержащих сигналы и слоты, программа падает снова с Access Violation. Наверное, этот список можно продолжать и удивляться. Настройки компилятора и линкера в Visual Studio проверил, они вроде адекватные. Что вообще происходит?
PM MAIL   Вверх
borisbn
Дата 20.3.2013, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Абсолютно уверен, что и exe и все dll-ки собраны под Debug ? Не может быть, чтобы exe-шник был в Release, а dll-ки в Debug ? Если так, то и не должно работать, т.к. Qt-шные классы сильно отличаются в режиме Debug и Release


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
qtshnik
Дата 20.3.2013, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.12.2010

Репутация: нет
Всего: нет



Ну а как здесь можно ошибиться? просто посмотреть Configuration Properties для solution'а
PM MAIL   Вверх
Jeka178RUS
Дата 20.3.2013, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Добавь постфикс d для дебага, тогда точно не ошибешься
PM MAIL   Вверх
qtshnik
Дата 20.3.2013, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.12.2010

Репутация: нет
Всего: нет



там и по размеру файла неплохо видно
PM MAIL   Вверх
qtshnik
Дата 20.3.2013, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 6.12.2010

Репутация: нет
Всего: нет



проблема решена. В AdditionalDependencies вместо QtCored4.lib стояло QtCore4.lib. Ошибка в одной букве так печальна! 
PM MAIL   Вверх
Jeka178RUS
Дата 21.3.2013, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 3.9.2012

Репутация: нет
Всего: нет



Вот тебе и попалась релизная либа вместо дебажной

Это сообщение отредактировал(а) Jeka178RUS - 21.3.2013, 13:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.1773 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.