Запуск приложения из под среды и не из под среды, когда запускаю exe-ник не работает 1 функция |
Здравствуйте, гость ( Вход | Регистрация )
Запуск приложения из под среды и не из под среды, когда запускаю 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.
Как я уже выяснил, если откомпилировать его в режиме дебаг и запускать экзешник, то все ок, и при открытии в нем приложенной хтмл-страницы линейка включена (при нажатии на карту появляются красные точки соединенные линиями). если откомпилировать в режиме релиз - не работает. Вывод - дело в опциях компилятора. Вопрос - как все таки откомпилировать в режиме релиз?
Прикрепленные файлы
|
|
|
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 |
in a delay-load dependent стало быть это dll'ка не из каталога %QTDIR%/bin, т.к. они все загружаются при старте приложения. Отложенная загрузка - обычно проблема с плагинами.посмотри на какой именно плагин ругается. и еще показал ошибку контрольной суммы у Qtcored4.dll и Qtcore4.dll для дебага и релиза соответственно такое я как-то видел, сути не понял и на работу моей программы не влияло.
|
|
|
mezmay |
1.11.2010, 21:04
Сообщение
#10
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Цитата стало быть это dll'ка не из каталога %QTDIR%/bin, т.к. они все загружаются при старте приложения. Отложенная загрузка - обычно проблема с плагинами. посмотри на какой именно плагин ругается. Ни на какой конкретный, просто варнинг и все |
|
|
Текстовая версия | Сейчас: 28.1.2025, 17:03 |