| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C&DOS] Просмотрщик файлов формата ГИФ |
| Автор: Гениальный123Робот 7.3.2007, 12:45 | ||
| Добрый день! Для хорошо знающих СИ Задача такая: выделить здесь основные функции и пояснить их (то есть ключевые функции выделить). Ну то есть объяснить мне, из чего задача и как работает. Заранее спасибо!
|
| Автор: En_t_end 12.3.2007, 18:12 |
| Гениальный123Робот, Тебе что, спецификацию gif рассказать ? Дык в инете поищи. |
| Автор: Гениальный123Робот 13.3.2007, 11:35 | ||
поподробнее можно? |
| Автор: Гениальный123Робот 14.3.2007, 12:19 |
| У кого-нибудь компилируется? Попробуйте, пожалуйста! Должно компилироваться, но у меня ошибок 6 линковщика... А у Вас? ![]() |
| Автор: Kuvaldis 15.3.2007, 11:58 | ||
Если компилировать в Borland 3.1 *(у тебя используется графика), то в
Выдаются 2 идентичные ошибки: can't conver unsigned char* to unsigned char Это ошибки НЕ линкера, они на этапе компиляции |
| Автор: Kuvaldis 15.3.2007, 16:15 | ||
| Гениальный123Робот, Вишь, что zkv написал
У меня то же самое. Вывод: всегда пиши комментарии ;) |
| Автор: Гениальный123Робот 15.3.2007, 18:18 | ||
| Спасибо, что отозвались! Большое спасибо! Окей, вот с комментами.
Может кто ход событий (функций) расскажет, кто посильнее меня в СИ? Какие конкретно надо выполнить функции, чтобы решить задачу просмотра картинок расширения ГИФ? P.S. В строках 483 и 484 - убрать русский текст, а то он мешает тэгу "code" |
| Автор: zkv 15.3.2007, 19:01 |
такой вариант я пробовал. Не помогает. Гениальный123Робот, ты чего добиться хочешь? Ну разберешься если даже ты с этой прогой, а дальше что делать с просмотрщиком гифов из консоли? Я не могу представить себе сферы его применения. Лучше сразу брал бы какой нить компилятор посовременней, и писал бы в нем. А сам то ты пробовал запускать эту прогу? Посидел бы сам с отладчиком, поискал бы ошибку, но, повторюсь, зачем изучать специфику работы с графикой уже мертвого компилятора? И тебе именно самому велосипед хочется изобрести? Вообще то существует довольно много способов просмотреть гиф-картинку, не вникая в устройство формата. |
| Автор: Rockie 15.3.2007, 19:59 |
| Гениальный123Робот, судя по первым строчкам кода, компилируешь в VC. BGI(Borland Graphic Interface) не поддерживается компиляторами платформы windows. Вернее, при особо сильном желании прикрутить можно но, как уже сказали, овчинка выделки не стоит Добавлено @ 20:00 http://www.garret.ru/~knizhnik/cpp.html |
| Автор: likehood 15.3.2007, 20:22 |
Интересно, как ты определил, чем он компилирует код. Кстати, из названия темы видно, что пишет он под ДОС. Непонятно только в чем проблема, у меня например в BC 3.1 картинку показало. |
| Автор: Гениальный123Робот 15.3.2007, 21:08 |
| Это мой курсовой проект. Мне надо разобраться в готовой задаче. И все. Поэтому я к вам. Ясно, что области применения тут нет, а требуется просто сделать и сдать ;) Поэтому и спрашиваю, какие функции в этой программе, как они работают и т.п. А у меня ошибки выдаются вон какие (Я выше скинул картинку). Как их исправить? У меня Borland C++ 3.1 |
| Автор: likehood 15.3.2007, 21:17 |
| Гениальный123Робот, а такая галочка установлена Options->Linker->Libraries->Graphic Library? |
| Автор: Гениальный123Робот 15.3.2007, 21:30 | ||
Сразу как ты сказал - поставил, но теперь уже все компилируется, а после этого запускается прога и написано: Device driver file not found <SVGA256.BGI> Балин, что за ошибка... Слу, и не проверишь (что я ниже написал) и пояснишь функции основные? Что они делают? Вот они: short decoder(int linewidth); int out_line(unsigned int pixels[],int linelen); int LoadGIF (char * szFileName,struct image * NextImage); // загружает gif void GrafInit(); void CreatePalette(struct image *,int,int); void Init (struct image * img, int iWidth, int iHeight, int iBPP); int huge detectSVGA(void); short get_next_code(); short init_exp(int size); void ClearScr(struct image *); // очищает экран |
| Автор: likehood 15.3.2007, 21:39 |
Файл svga256.bgi (видеодрайвер) должен лежать в одной папке с твоей программой. |
| Автор: Гениальный123Робот 15.3.2007, 21:43 |
| Опана. А что за файл? ... И где его найти? |
| Автор: likehood 15.3.2007, 21:57 |
| Добавлено @ 22:07 Можно http://www.ishodniki.ru/base/Pascal/svga256t.zip скачать |
| Автор: Гениальный123Робот 15.3.2007, 22:13 | ||
Там 4 файла в папке, один из них - нужный мне. Но я один распаковал в одну папку с прогой - то же самое. Может надо все файлы (4 файла) в ту папку? Попробовал, то же самое (((. А ты понял суть проги? Точнее назначение её основных функций. |
| Автор: zkv 15.3.2007, 22:45 |
| Гениальный123Робот, тоже самое было, пропиши полный путь до файла, файл пиши вместе с расширением, не забудь про экранируещие слеши в пути. Мне помогло. |
| Автор: Гениальный123Робот 15.3.2007, 22:48 | ||
Где и до какого файла? У меня сразу вылетает ФАЙЛ НЕ НАЙДЕН и Нажмите любую клавишу для прерывания. (см. выше) Куда и что прописать...? |
| Автор: zkv 15.3.2007, 22:56 | ||||
было:
стало:
|
| Автор: Гениальный123Робот 15.3.2007, 23:17 |
| Спасибо, так и сделал. Ха, теперь окно просто сразу сворачивается и все |
| Автор: likehood 16.3.2007, 00:28 |
и что, никаких ошибок не пишет? |
| Автор: zkv 16.3.2007, 00:37 | ||
у меня тоже самое, компилятор наковырял - bc3.1. А прога просто вылетает вместе с борландом и как будто и не запускал ничего |
| Автор: likehood 16.3.2007, 00:49 |
а если не из борланда запускать, а напрямую? (хотя у меня и из борланда работает) |
| Автор: apook 16.3.2007, 05:46 | ||||||||||
Так сделал стал выдавать типа . \SVGA256. \SVGA256 в®.bgi не найден сделал как было и все же работает!
если компилишь не из BORLAND-а подключай GRAPHICS.LIB
|
| Автор: En_t_end 16.3.2007, 06:48 |
| Поясняю. Работа, связанная с выводом графики делится на несколько этапов: 1.Подготовка драйвера. 2.Подготовка режима вывода(область и т.д) 3.Подготовка сохраненного изображения(загрузка в память,подгонка размера, цветности и т.д.) 4.Собственно вывод. Лучший выход в твоей ситуации написать всё заново(к тому же поймешь лучше), если будут вопросы по реализации конкретной части программы смотри этот код. Добавлено @ 06:51 Кури доки: http://www.netghost.ru/gff/vendspec/gif/index_en.html |
| Автор: Гениальный123Робот 16.3.2007, 12:16 | ||||
Хм. Угу, и я о том же. Бла, и что делать? |
| Автор: apook 16.3.2007, 12:38 |
| А другие программы у тоже вылетайт или только эту не успеваешь посмотрейт а она обратно залетайт а не из-зза железа ли то Rjvgbkmyb ult rfhnf yt pci express:acute |
| Автор: Гениальный123Робот 17.3.2007, 20:32 |
| Может файл какой-то не такой? Не подходящий для данной программы :( Балин, надо бы понять уже, в чем проблема... |
| Автор: likehood 19.3.2007, 01:05 | ||
Кстати, совсем забыл: так писать нельзя. Первым параметром должно идти имя файла, а не путь к нему. Тогда файл svga256.bgi должен находиться в одном каталоге с твоей программой, чтобы она его нашла. Прогу лучше запускать не из редактора кода, а напрямую из консоли (то есть запускать сам экзешник твоей проги). Еще можно в функции installuserdriver не использовать второй параметр (передать вместо него NULL). Тогда перед вызовом initgraph надо задать режим gmode=2. Для проверки работы драйвера можно сделать простенькую програмку вроде такой:
Если не появилась белая линия, то внимательно читаем сообщения об ошибках. |
| Автор: Rockie 19.3.2007, 13:38 | ||
likehood, такой код автоматически дгобавляется микрософтовским компилятором, когда создаешь приложение:
|
| Автор: Гениальный123Робот 19.3.2007, 18:39 |
| likehood, 1. Как экзешник создать, если программа нормально ни рзу не прошла? 2. У меня выдается вот такая ошибка, когда я попробовал твою маленькую программу, вот какая ошибка: BGI Error: Graphic not initialized (use 'initgraph') :( У тебя такого не было? Я файл этот тоже внес в новую папку с твоей прогой... |
| Автор: likehood 19.3.2007, 23:50 | ||
Когда ты нажимаешь Ctrl-F9, создается экзешник, который потом запускается (если не хочешь запускать программу, а только откомпилировать, нажимаешь просто F9). По-умолчанию, если не ошибаюсь, экзешник создается в каталоге bin, но можно указать любой каталог в Options->Directories->Output Directory. Твоя ошибка говорит о том, что твоя программа не смогла не смогла найти файл svga256.bgi. |
| Автор: Гениальный123Робот 20.3.2007, 23:54 |
| likehood, привет! Спасибо, теперь вроде все нормально. Еще попрошу тебя основные функции описать этого просмотрщика. Хочу его понять, етот просмотрщик ;) Спасибо заранее |