crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Запуск приложения из под среды и не из под среды, когда запускаю exe-ник не работает 1 функция
mezmay
  опции профиля:
сообщение 1.11.2010, 16:57
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Работаю онлайн с картами яндекса. Загружаю созданную мной html-страничку в QWebView.
Если запускать приложение из под среды Visual Studio 2008 то все работает правильно.
А если запускать экзешник (приложив к нему Qt-шные dll), то одна функция яндекс карт не включается, а именно "линейка".

Подключил яваскрипт-консоль. Пишу лог. При попытке включить "линейку" в лог пишется строка:

message: TypeError: Result of expression 'this.__objectLayer.add' [[object Object]] is not a function.
lineNumber: 11
sourceID: http://api-maps.yandex.ru/1.1.15/_YMaps.js

Чтобы проверить, нет ли у меня ошибок в коде, я перенес включение линейки в текст хтмл страницы,
и полученную страницу открываю в браузере fancybrowser из Qt-ных примеров. (еще и в опере открыл для надежности - работает)
С fancybrowser та же проблема - если запускать его из под среды, то линейка работает, а если запускать экзешник - то не работает.
В чем может быть проблема? Может какой-то dll не хватает, а программа не ругается?
(Например если забыть положить рядом с Qt-ным экзешником папку imageformats, то картинки отображаться не будут)
Вот список того что я приложил к экзешнику:

phonon4.dll
QtCore4.dll
QtGui4.dll
QtNetwork4.dll
QtWebKit4.dll
QtXmlPatterns4.dll

+ все папки из plugins

Qt 4.6.3
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 1.11.2010, 17:02
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


забыл QtScript4.dll
возможно еще QtScriptTools4.dll
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 1.11.2010, 17:08
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Добавил, не работает...
P.S. Я туда все содержимое папки bin на всякий случай кинул)

Сообщение отредактировал mezmay - 1.11.2010, 17:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 1.11.2010, 17:22
Сообщение #4


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


тогда не знаю в чем может быть проблема. Сделай минимальный компилируемый пример и выложи здесь, попробуем разобраться
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 1.11.2010, 18:33
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Можно компилировать стандартный пример fancybrowser.

Как я уже выяснил, если откомпилировать его в режиме дебаг и запускать экзешник, то все ок, и при открытии в нем приложенной хтмл-страницы линейка включена (при нажатии на карту появляются красные точки соединенные линиями).
если откомпилировать в режиме релиз - не работает. Вывод - дело в опциях компилятора. Вопрос - как все таки откомпилировать в режиме релиз?

Прикрепленные файлы
Прикрепленный файл  index_yandex.html ( 2.35 килобайт ) Кол-во скачиваний: 185
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2010, 18:46
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


mezmay, запусти (!) свою программу в Dependency Wallker и посмотри, что программа пытается подгружать во время выполнения.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 1.11.2010, 19:01
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Итак, что мы имеем. Правильная программа, без ошибок (я про fancybrowser) работает в режиме дебаг и неправильно работает в режиме релиз. (При этом в обоих режимах работает из под среды...). Экзешники, полученные в результате компиляции дебага и релиза отличаются, как я понимаю, зависимостями (отладочная информация не влияет на работу). А именно - релизный экзешник зависит от:
1. Релизных dll Visual Studio
2. Релизных dll Qt

Дебажный экзешник - соответственно от дебаг-версий этих dll.
Ломаю голову что это может означать... глючат релизные dll Qt?...

Цитата
mezmay, запусти (!) свою программу в Dependency Wallker и посмотри, что программа пытается подгружать во время выполнения.


а как анализировать эту информацию? ну получу я списки dll, и что с ними делать?

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 1.11.2010, 20:05
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


dependency walker выдал в обоих случаях:
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module

и еще показал ошибку контрольной суммы у Qtcored4.dll и Qtcore4.dll для дебага и релиза соответственно

Сообщение отредактировал mezmay - 1.11.2010, 20:06
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 1.11.2010, 20:26
Сообщение #9


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mezmay @ 2.11.2010, 0:05) *
in a delay-load dependent
стало быть это dll'ка не из каталога %QTDIR%/bin, т.к. они все загружаются при старте приложения. Отложенная загрузка - обычно проблема с плагинами.
посмотри на какой именно плагин ругается.

Цитата(mezmay @ 2.11.2010, 0:05) *
и еще показал ошибку контрольной суммы у Qtcored4.dll и Qtcore4.dll для дебага и релиза соответственно
такое я как-то видел, сути не понял и на работу моей программы не влияло.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 1.11.2010, 21:04
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Цитата
стало быть это dll'ка не из каталога %QTDIR%/bin, т.к. они все загружаются при старте приложения. Отложенная загрузка - обычно проблема с плагинами.
посмотри на какой именно плагин ругается.

Ни на какой конкретный, просто варнинг и все
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 5:15