А что за глюк с картинками??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

А что за глюк с картинками??

Сообщение Особист » 24.07.2006 (Пн) 9:05

А может кто-нибудь сказать, с чем связано и как бороться:
есть некоторые типы картинок формата Jpg, скорее всего содержащие какую-то ошибку в коде, распаковывающем их в память, на которых не только приложеия, сделанные на VB, намертво подвисают, но и даже сам VB.
К примеру, создаём форму, вставляем в неё тот же Image, грузим в него такую картинку, и - звездец, давим Ctrl+Alt+Del...
Я пробовал такую картинку открыть ACDSee, но её создатели наверное просекли такую тему, и эта прога только выдаёт, мол, неправильный image, bicubic interpolation.
Поскольку специфика разрабатывсваемой мною программкы такова, что она постоянно работает с форматом jpg, мне было бы очень кстати побольше узнать о причинах такого поведения VB и о возможности с оной траблой бороться.
Спасибо всем заранее!

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.07.2006 (Пн) 11:05

картинок формата Jpg, скорее всего содержащие какую-то ошибку в коде, распаковывающем их

ИМХО, там кода нет в природе...

А эти файлы хоть что-нибудь загружает?
Изображение

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.07.2006 (Пн) 11:27

Прицепи хоть одну картинку для интереса.
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Сообщение Twister » 24.07.2006 (Пн) 11:41

После прочтения этой статьи я уже ни чему не удивлюсь. Думаю, все поняли к чему я ее привел.
А я все практикую лечение травами...

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 24.07.2006 (Пн) 15:24

По просьбам трудящихся )))
Вот он - "ацкий файлег".

Причём, в ходе тестирования я заметил, что под WINDOWS XP (по крайней мере SP2) на файл ОС ругается, типа bad file.
А если трюк провести под, скажем, Win2k, зависание гарантировано.

Так что очевидно в jpg всё же есть какой-то код. Я даже слышал когда-то, что якобы есть вирусы, использующие этот формат!!!
Вложения
index_01.jpg
"Файлег", вешающий Винду 9x-2k
index_01.jpg (16.97 Кб) Просмотров: 262

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.07.2006 (Пн) 15:30

"Аццкий файлег" у меня IE просто не отобразтл, нарисовав на его месте крестик :)

А вообще Загрузка в отдельном треде рулит... Правда придётся использовать всякую "нечисть"(DLL на других языках), для корректности вызова.
Изображение

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 24.07.2006 (Пн) 16:24

keks-n
"Файлег" подвешивает именно VB! Т.е. создаём форму, и вставляем в неё файлег! Если не ХР, то зависнет. М.б. это проблема связана только в СБ, хрен знает...

А что есть загрузка в отдельном треде? Это использование каких-то сторонних библиотек или возможно контролов, альтернативных Image и Picture?

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 24.07.2006 (Пн) 16:25

---------------------------
IrfanView
---------------------------
D:\**FilePath**\index_01.jpg : JPEG Ошибка декодирования!

Bogus DQT index 15
---------------------------
ОК
---------------------------
гы
Если всё делать своими ручками, они скоро отвалятся !

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 24.07.2006 (Пн) 16:27

А что, принципиально важно грузить такие картинки?

Код: Выделить всё
On error resume next
не помогает?

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 24.07.2006 (Пн) 16:39

Нет, в том и дело, что нет! ВЕШАЕТ ВБ и ВБ-приложения.

Дело в том, что ИМЕННО ТАКИЕ картинки лучше б вообще не грузить, но они попадаются в Интернете! А прога как раз ходит по ссылкам и закачивает jpg-файлы из сети.
(Назначение программя, я думаю, уже понятно )) )

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 24.07.2006 (Пн) 16:40

Kovu писал(а):---------------------------
IrfanView
---------------------------
D:\**FilePath**\index_01.jpg : JPEG Ошибка декодирования!

Bogus DQT index 15
---------------------------
ОК
---------------------------
гы


Т.е. BOGUS DQT ОТКРЫЛ-таки этот файл??? :shock:

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 24.07.2006 (Пн) 16:51

:lol: Это содержимое одного месседж бокса об ошибке =)
Фотошоп сказал, что неправильное значение QTable для DQT JPEG сегмента (должно быть <4). Может это всё-таки защищенный файл? :)
Если всё делать своими ручками, они скоро отвалятся !

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 24.07.2006 (Пн) 17:03

Чёрт его знает что это такое, но зачем ему при этом "вешать" ВБ...
Причём это явно виндовый глюк, который в XP отловили...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.07.2006 (Пн) 17:11

ХЗ... Скорее всего это битый JPEG.
Изображение

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 24.07.2006 (Пн) 17:27

Наверно битый, просто как же через жопу надо сделать операционку, чтобы на битых файлах она вешалась!!! Маздай одним словом!

Короче я поступил вот как. Кто-то скажет "геморно и тупо", и наверно будет прав, но тем не менее, я так сделал:

Написал саму прогу. Написал ещё прогу, которая отслеживает активность предыдущей, основной, в памяти. Если N-ное количество времени не получает ответа, то просто выгружает основную прогу из памяти, и тут же производит Shell её же. Этот резидент запускаецца вместе с основной программой, через Shell, и незримо висит в памяти, пока основная присутствует там же.
Собственно, перед тем как качнуть "ацкий файлег" и повиснуть, основная программа запоминает в реестре URL на этот файл, после чего качает его и грузит в объект Image. Сразу после загрузки оного в объект, выполняется следующая строка, которая эту запись из реестра трёт. Разумеется, если прога повисла, запись так и останецца в реестре.
Соответственно при запуске основная прога смотрит ту запись в реестре, и если она не пуста, то добавляет её содуржимое в специальный список, т.н. "Бан-Лист", и игнорирует закачку по этому URL в дальнейшем.

Такая вот загогулина :)

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.07.2006 (Пн) 17:52

А нельзя было сделать отдельную прогу-грузилку, которая грузит картинку, и копирует в переданный через коммандную строку hDC?
Изображение

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 25.07.2006 (Вт) 9:48

Можно.Но всё равно, если такая грузилка зависнет??? То же самое отслеживание и программный перезапуск. Но вообще, эта идея меня натолкнула на то, что если запускать, скажем, 5 таких грузилок одновременно, файлы будут качаться в 5 раз быстрее (если ширина канала позволяет)... Но, с другой стороны, отслеживать одноимённых 5 процессов в памяти - гемор...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 25.07.2006 (Вт) 11:00

Не понимаю, почему отслеживать 5 одноимённых процессов сложнее, чем 5 разноимённых :-|
Изображение

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Сообщение NashRus » 25.07.2006 (Вт) 14:48

Наверно битый, просто как же через жопу надо сделать операционку, чтобы на битых файлах она вешалась!!! Маздай одним словом!


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

и ты хочешь сказать, что Win2000 со всеми обновлениями (да даже и без них), выпадал в синий экран от твоей картинки ? может все таки твоя прога падала, а не винды ?

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 25.07.2006 (Вт) 17:24

NashRus
Блин, да скока раз говорю здесь одно и то же - ВИСНЕТ НЕ ТОЛЬКО ПРОГА НО И САМ VB!!! Под разными осями по разному: не XP - VB виснет, под XP тот же самый VB выдаёт "плохая картинка"!

tyomitch
Потому что тот код, который я юзаю для снятия приложений, работает с именами исполняемых файлов. Хотя, конечно же, если в нём немного поковыряться, задача будет решена без проблем...

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 25.07.2006 (Вт) 19:15

NashRus писал(а):
Сам ты мастдай с кривыми руками, на зеркало киваешь.
В файл внедряли код, который выполнялся, используя уязвимость (переполнение буфера) одной из библиотек, обрабатывающих эти данные. даже zlib по-моему.

А мне вот казалось, что содержимое графического файла на выполнение не запускается.... :roll:
Если всё делать своими ручками, они скоро отвалятся !

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 25.07.2006 (Вт) 20:13

Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 25.07.2006 (Вт) 20:27

Tarik
Спасибо, буду знать.
Если всё делать своими ручками, они скоро отвалятся !

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 25.07.2006 (Вт) 21:00

Это юмор или как?

1. "Картинка" ничего не вешает! VB мой оригинальный, шестой, пишет "Invalid Picture" и все.. Никаких проблем..
2. А кто сказал, что это картинка? Это файл, имеющий заголовок JPEG и расширение .JPG, содержащий бессмысленный набор символов в теле.
3. Хотя картинки, вешающие различные проги, действительно существуют. На мой взгляд, наиболее часто "вешался" IE версии <=5. Самое большое распостранение - "подглядывание" чужих кукисов, юзая картинку-вирус и скрипт JS. Примеров куча. В Яндекс.

В общем, раздули тут непонятно что из непонятно чего..

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 26.07.2006 (Ср) 0:47

AjaxVS
А ты под какой виндой пробовал загрузить её в ВБ.
Просто, мб, у меня и тут версия какая-то глючная (вот блин XP же глючным оказался!)

Вообще, у кого-нибудь кроме меня бейсик завис или как??

AjaxVS
Постоялец
Постоялец
 
Сообщения: 506
Зарегистрирован: 01.12.2004 (Ср) 13:12
Откуда: Donetsk, Battle.Net

Сообщение AjaxVS » 26.07.2006 (Ср) 1:53

Пробовал под XP Pro. без сервис-паков. VB 6.0, тоже без паков..

Может, у тя дрова видяшные глючат? У меня в Опере тоже бывают глюки, подозреваю картинки.. Помню, загрузилась одна на 30%, потом Винда летит в BDS. Ребучусь - тоже самое. Но у меня 100% дрова глючили.. Переустанови и свои, мож поможет..

Особист
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 122
Зарегистрирован: 10.05.2006 (Ср) 12:46

Сообщение Особист » 26.07.2006 (Ср) 2:08

Ну, дык то XP! Я же говорю о более ранних версиях операционки, например Win2k.
Дрова здесь абсолютно ни при чём, поскольку на трёх (!) доступных машинах эффект тот же самый!

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.07.2006 (Ср) 20:55

Win2k сказала, что левая картинка... Правда на VB 6 сервис пак
Изображение

Gmp
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 68
Зарегистрирован: 22.07.2006 (Сб) 17:04
Откуда: Германия

Сообщение Gmp » 26.07.2006 (Ср) 21:00

Win2k VS6(SP6) виснет. :roll:

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 26.07.2006 (Ср) 21:03

Кто виснет? VB или винда?
Изображение

След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 80

    TopList