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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу  (Прочитано 7764 раз)
slip
Гость
« : Январь 31, 2013, 20:31 »

Пытаюсь отобразить QSplashScreen с прозрачным png на чистой (без Qt и VS) Windows XP следующим образом:

Код:
QSplashScreen *splash=new QSplashScreen(QPixmap(":/images/splash.png"));
splash->show();

на второй строчке выскакивает ошибка "обнаружена ошибка. Приложение будет закрыто".
какой-либо дополнительной информации в сообщении больше нет.

все зависимости (насколько я могу судить по dependency walker) удовлетворены и, если строчку закомментировать, то программа отлично работает.
если строчку не комментировать, то программа отлично работает на чистой (без Qt и VS) Windows 7.

Подскажите, пожалуйста, что может вызывать подобную ошибку в Windows XP, и каким образом можно было бы ее устранить.

Заранее благодарю.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Январь 31, 2013, 20:36 »

Подскажите, пожалуйста, что может вызывать подобную ошибку в Windows XP, и каким образом можно было бы ее устранить.
А плагины для загрузки изображений на XP скопированы?
Записан
slip
Гость
« Ответ #2 : Январь 31, 2013, 20:41 »

Нет. Я qt не собирал, а в распространяемой на qt-project версии нет плагина для отображения png (только gif, ico, jpeg, mng, svg, tga, tiff, wbmp). И, судя по тому, что иконки в программе (тоже png) показываются нормально, вероятно, это не нужно...

но возможно, конечно, я ошибаюсь... его нужно собирать?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #3 : Январь 31, 2013, 20:45 »

И, судя по тому, что иконки в программе (тоже png) показываются нормально, вероятно, это не нужно...
но возможно, конечно, я ошибаюсь... его нужно собирать?
Если png нормально читается, то вряд-ли  дело не в этом.
Записан
Bepec
Гость
« Ответ #4 : Январь 31, 2013, 21:34 »

А стек посмотреть после падения религия не позволяет?

Поставьте там точку остановки и идите внутрь всех функций и локализуйте проблему.

PS у вас могучий инструмент отладки в руках, а вы им не пользуетесь?
Записан
slip
Гость
« Ответ #5 : Январь 31, 2013, 23:02 »

спасибо, я попробую... очень не хотелось ставить qt и vs, т.к. на рабочую машинку нет возможности поставить, а у меня установленной xp нет... придется ставить на виртуалку, хоть это и длительный процесс...

надеялся, что может я какую библиотеку забыл закинуть... хочется верить, что дебаггер поможет определить проблему...
Записан
Bepec
Гость
« Ответ #6 : Февраль 01, 2013, 07:19 »

Виртуальные машинки вам в помощь.  Ставится всё за час  - полтора и решается мучающая вас проблема Улыбающийся (или вы ещё больше огорчитесь Веселый )
Записан
slip
Гость
« Ответ #7 : Февраль 01, 2013, 11:17 »

ну ясности мне дебаггер не прибавил совсем Грустный

выяснил следующее:
1. проблема только с png. если картинку заменить на jpg, то все работает.

2. ошибку пишет следующую: Unhandled exception at 0x00000000 in MPARegistry.exe: 0xC0000005: Access violation reading location 0x00000000

и останавливает выполнение на 55 строке файла malloc.c (закрывающая фигурная скобка в функции "__forceinline void * __cdecl _heap_alloc (size_t size)")
Записан
Bepec
Гость
« Ответ #8 : Февраль 01, 2013, 11:20 »

Ппц ) Как ты много ясности добавил Улыбающийся

У тебя идёт обращение по невалидному указателю.  Видимо ты что-то там накодил до вызова сплеш скрина Улыбающийся

Ты попробуй убрать всё лишнее Улыбающийся локализуй проблему:D
Записан
slip
Гость
« Ответ #9 : Февраль 01, 2013, 11:37 »

это в самом начале Грустный , там нет ничего до этого:

Код:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPixmap SplashPixmap(":/images/catalogue.png");
QSplashScreen *splash=new QSplashScreen(SplashPixmap);
splash->show(); //тут вылетает access violation

при этом если png заменить на jpg все работает отлично...
Записан
Bepec
Гость
« Ответ #10 : Февраль 01, 2013, 13:43 »

Попробуйте и pixmap создавать динамически (через new).
Записан
slip
Гость
« Ответ #11 : Февраль 01, 2013, 15:22 »

попробовал... ошибка та же самая, в том же месте Грустный
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #12 : Февраль 01, 2013, 15:26 »

попробовал... ошибка та же самая, в том же месте Грустный

А винда родная, не сборка какая-нибудь?
Записан
slip
Гость
« Ответ #13 : Февраль 01, 2013, 15:51 »

винда, лицензионная, со всеми обновлениями...
меня больше всего смущает, что работает jpg (в любой системе) и png (в Windows 7)...
то есть логично предположить, что дело не совсем в коде... o_O и можно было бы предположить, что дело именно в поддержке png, но тот же png в качестве иконок работает в WinXP нормально, то есть все иконки отображаются...
« Последнее редактирование: Февраль 01, 2013, 15:55 от SLiP » Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #14 : Февраль 01, 2013, 16:46 »

скинь сюда заархивированный каталог со всем тем, что ты запускаешь на XP. Чтобы могли распаковать и сразу запустить. И проект с исходниками.

P.S. Я не спец по VS, но может нужно на XP поставить VS Redistributable 2010?
« Последнее редактирование: Февраль 01, 2013, 16:52 от Alex Custov » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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