Russian Qt Forum
Ноябрь 25, 2024, 11:38 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача QScriptEngine в качестве параметра в функцию DLL  (Прочитано 3294 раз)
akaMDA
Гость
« : Март 06, 2013, 15:44 »

QT 5. Windows 7 x64. msvc2010.
Имеется dll с экспортированной функцией
Код:
void f(QScriptEngine* _a)
в которой происходит обращение к параметру _a и приложение обваливается. В чем  проблема?
« Последнее редактирование: Март 06, 2013, 15:49 от akaMDA » Записан
akaMDA
Гость
« Ответ #1 : Март 06, 2013, 15:52 »

Эффект наблюдается когда dll в релизе или в релизе, а приложение - в дебаге. Когда приложение в релизе - все отрабатывает
Записан
RedDog
Гость
« Ответ #2 : Март 06, 2013, 16:51 »

Не совпадают таблицы вызова у длл и приложения. И вообще дурной тон передавать сложные объекты через границы процессов,  будут разные версии Qt или компилятора для длл и приложения - тоже будет сыпаться.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Март 06, 2013, 17:43 »

Эффект наблюдается когда dll в релизе или в релизе, а приложение - в дебаге. Когда приложение в релизе - все отрабатывает
На MSVC этот эффект наступает практически для любых классов, напр std::vector. Все должно быть откомпилировано однообразно
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #4 : Март 06, 2013, 18:12 »

Эффект наблюдается когда dll в релизе или в релизе, а приложение - в дебаге. Когда приложение в релизе - все отрабатывает
Боюсь показаться Капитаном Очевидность, но я продолжу мысль:
Еще этот эффект наблюдается если приложение в релизе а dll в дебаге. Если всё в дебаге - все отрабатывает
Записан

Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.045 секунд. Запросов: 22.