Название: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Январь 31, 2013, 20:31 Пытаюсь отобразить QSplashScreen с прозрачным png на чистой (без Qt и VS) Windows XP следующим образом:
Код: QSplashScreen *splash=new QSplashScreen(QPixmap(":/images/splash.png")); на второй строчке выскакивает ошибка "обнаружена ошибка. Приложение будет закрыто". какой-либо дополнительной информации в сообщении больше нет. все зависимости (насколько я могу судить по dependency walker) удовлетворены и, если строчку закомментировать, то программа отлично работает. если строчку не комментировать, то программа отлично работает на чистой (без Qt и VS) Windows 7. Подскажите, пожалуйста, что может вызывать подобную ошибку в Windows XP, и каким образом можно было бы ее устранить. Заранее благодарю. Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Old от Январь 31, 2013, 20:36 Подскажите, пожалуйста, что может вызывать подобную ошибку в Windows XP, и каким образом можно было бы ее устранить. А плагины для загрузки изображений на XP скопированы?Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Январь 31, 2013, 20:41 Нет. Я qt не собирал, а в распространяемой на qt-project версии нет плагина для отображения png (только gif, ico, jpeg, mng, svg, tga, tiff, wbmp). И, судя по тому, что иконки в программе (тоже png) показываются нормально, вероятно, это не нужно...
но возможно, конечно, я ошибаюсь... его нужно собирать? Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Old от Январь 31, 2013, 20:45 И, судя по тому, что иконки в программе (тоже png) показываются нормально, вероятно, это не нужно... Если png нормально читается, то вряд-ли дело не в этом.но возможно, конечно, я ошибаюсь... его нужно собирать? Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Bepec от Январь 31, 2013, 21:34 А стек посмотреть после падения религия не позволяет?
Поставьте там точку остановки и идите внутрь всех функций и локализуйте проблему. PS у вас могучий инструмент отладки в руках, а вы им не пользуетесь? Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Январь 31, 2013, 23:02 спасибо, я попробую... очень не хотелось ставить qt и vs, т.к. на рабочую машинку нет возможности поставить, а у меня установленной xp нет... придется ставить на виртуалку, хоть это и длительный процесс...
надеялся, что может я какую библиотеку забыл закинуть... хочется верить, что дебаггер поможет определить проблему... Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Bepec от Февраль 01, 2013, 07:19 Виртуальные машинки вам в помощь. Ставится всё за час - полтора и решается мучающая вас проблема :) (или вы ещё больше огорчитесь :D )
Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Февраль 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)") Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Bepec от Февраль 01, 2013, 11:20 Ппц ) Как ты много ясности добавил :)
У тебя идёт обращение по невалидному указателю. Видимо ты что-то там накодил до вызова сплеш скрина :) Ты попробуй убрать всё лишнее :) локализуй проблему:D Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Февраль 01, 2013, 11:37 это в самом начале :( , там нет ничего до этого:
Код: int main(int argc, char *argv[]) при этом если png заменить на jpg все работает отлично... Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Bepec от Февраль 01, 2013, 13:43 Попробуйте и pixmap создавать динамически (через new).
Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Февраль 01, 2013, 15:22 попробовал... ошибка та же самая, в том же месте :(
Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Alex Custov от Февраль 01, 2013, 15:26 попробовал... ошибка та же самая, в том же месте :( А винда родная, не сборка какая-нибудь? Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Февраль 01, 2013, 15:51 винда, лицензионная, со всеми обновлениями...
меня больше всего смущает, что работает jpg (в любой системе) и png (в Windows 7)... то есть логично предположить, что дело не совсем в коде... o_O и можно было бы предположить, что дело именно в поддержке png, но тот же png в качестве иконок работает в WinXP нормально, то есть все иконки отображаются... Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Alex Custov от Февраль 01, 2013, 16:46 скинь сюда заархивированный каталог со всем тем, что ты запускаешь на XP. Чтобы могли распаковать и сразу запустить. И проект с исходниками.
P.S. Я не спец по VS, но может нужно на XP поставить VS Redistributable 2010? Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: Bepec от Февраль 01, 2013, 17:57 Не, прога бы не запустилась без среды :) А раз проходит, значит всё для запуска есть :)
Название: Re: [QT5, VS2010] QSplashScreen в чистой Windows XP рушит программу Отправлено: slip от Февраль 01, 2013, 20:54 VS Redistributable 2010 (и 2009) ставится автоматически при установке VS2010... но на XP все равно не работает... так что дело не в нем.
исходник: http://ezhik-s-koshkoy.ru/source.7z откомпилированный релиз: http://ezhik-s-koshkoy.ru/compiled-w32.7z |