Author |
Message |
Андpей Дoрoнин
Заглянувший

Joined: 03 Aug 2005
Posts: 6
Карма: 1 поощрить/наказать
Location: Москва
|
Posted: Wed Aug 03, 2005 7:36 pm (написано за 2 минуты 30 секунд)
Post subject: Ошибка в исходнике cgiinside\с\gif.c
|
|
Перед выводом картинки нужно перевести stdout в BINMODE: Code (c): | скопировать код в буфер обмена | // #include <stdio.h> // #include <io.h> #include <fcntl.h>
// long filesize(FILE *f) { long pos, size; pos = ftell(f); fseek(f, 0, 2); size = ftell(f); fseek(f, pos, 0); return size; }
void main(void) { // FILE *f = fopen("test.gif", "rb"); FILE *st = fdopen(fileno(stdout), "wb"); // fprintf(st, "Pragma: no-cache\r\n"); fprintf(st, "Content-type: image/gif\r\n"); fprintf(st, "Content-length: %d\r\n", filesize(f)); fprintf(st, "\r\n"); // setmode(fileno(stdout),O_BINARY); // while (1) { char s[4000+1]; int size = fread(s, 1, 4000, f); if (!size) break; fwrite(s, size, 1, st); } } | если этого не сделать, вместо
получится
Description: |
|
Filesize: |
1.46 KB |
Viewed: |
15209 Time(s) |

|
Description: |
|
Filesize: |
1.88 KB |
Viewed: |
15209 Time(s) |

|
|
|
Back to top |
|
 |
phprus
Участник форума
Joined: 25 Jul 2003
Posts: 162
Карма: 8 поощрить/наказать
Location: Пермь
|
Posted: Thu Aug 04, 2005 1:51 pm (спустя 18 часов 15 минут; написано за 1 минуту 30 секунд)
Post subject:
|
|
А разве строкой FILE *st = fdopen(fileno(stdout), "wb"); мы не открываем stdout в бинарном режиме? Мы же печатаем функциями fprintf и fwrite в *st.
|
|
Back to top |
|
 |
Андpей Дoрoнин
Заглянувший

Joined: 03 Aug 2005
Posts: 6
Карма: 1 поощрить/наказать
Location: Москва
|
Posted: Fri Aug 05, 2005 1:14 am (спустя 11 часов 22 минуты; написано за 2 минуты 23 секунды)
Post subject:
|
|
может быть это и так... НО! если убрать сроку setmode(fileno(stdout),O_BINARY); , вместо картинки действительно выводится шум (gif.gif) Если честно, я не особо силен в С , но исправленный код работает правильно
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 413 поощрить/наказать
|
Posted: Sat Aug 06, 2005 2:16 am (спустя 1 день 1 час 2 минуты; написано за 14 секунд)
Post subject:
|
|
UndeRoll, на какой платформе компилировали? Какой компилятор?
|
|
Back to top |
|
 |
Андpей Дoрoнин
Заглянувший

Joined: 03 Aug 2005
Posts: 6
Карма: 1 поощрить/наказать
Location: Москва
|
Posted: Mon Aug 08, 2005 11:55 am (спустя 2 дня 9 часов 38 минут; написано за 2 минуты 12 секунд)
Post subject:
|
|
WinXP MS Visual C++ 6.0 кстати post.c, откопилированный тем же MS Visual, вообще не запускается... "post.cgi - обнаружена ошибка. Приложение будет закрыто."
Что наводит на мысль: "Это проблема MS Visual" ;) На досуге попробую Borland C++ Builder 6.0
|
|
Back to top |
|
 |
DruiD
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Aug 31, 2007 8:43 pm (спустя 2 года 23 дня 8 часов 48 минут; написано за 1 минуту 7 секунд)
Post subject: Application
|
|
Просьба авторов внести коррективы в архив, чтобы пользователям не приходилось лишний раз заходить на форум(как мне) чтобы скорректировать исходник. Вопрос решен, тему можно закрыть.
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Fri Aug 31, 2007 10:24 pm (спустя 1 час 41 минуту; написано за 35 секунд)
Post subject:
|
|
Андpей Дoрoнин
Это исправление именно для Windows... Под *nix не будет такой проблемы, там бинарный и текстовый режимы не отличаются.
|
|
Back to top |
|
 |
Медвежонок
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Sep 12, 2007 9:37 pm (спустя 11 дней 23 часа 12 минут; написано за 8 секунд)
Post subject:
|
|
Подскажите где скачать компилятор Visual C++ и как его ставить У меня cgi файлы без компилятора открываются простым текстом как в блокноте. Или что-то надо настроить.
|
|
Back to top |
|
 |
Maus
Модератор

Joined: 29 Jun 2003
Posts: 8151
Карма: 271 поощрить/наказать
Location: пос. Омсукчан Магаданской области
|
Posted: Fri Sep 14, 2007 7:10 pm (спустя 1 день 21 час 32 минуты; написано за 3 минуты 20 секунд)
Post subject:
|
|
Медвежонок wrote: |
где скачать компилятор Visual C++ | на сайте Microsoft сейчас доступен какой-то бесплатный стартовый вариант Visual Studio - возможно, там и компилятор есть. Сразу предупреждаю, что там требуется регистрация и весит это счатье солидно. А полноценная Visual Studio стоит денег, и приличных. Впрочем, есть и другие компиляторы - поищите в Гугле и попробуйте ими (может, даже tcc сгодится).
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Sun Sep 16, 2007 1:56 am (спустя 1 день 6 часов 46 минут; написано за 4 минуты 17 секунд)
Post subject:
|
|
[quote="Maus"] Медвежонок wrote: |
где скачать компилятор Visual C++ | на сайте Microsoft сейчас доступен какой-то бесплатный стартовый вариант Visual Studio - возможно, там и компилятор есть.quote] Компилятора там нет, или же он как-то включается отдельно, т.к. все функции и кнопочки связанные с компилированием там не активны(((
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Sun Sep 16, 2007 7:08 pm (спустя 17 часов 12 минут; написано за 47 секунд)
Post subject:
|
|
Гость
Microsoft, насколько я знаю, бесплатно распространяет свой компилятор cl и nmake, поэтому Вы должны, теоретически, быть способны скомпилировать всё, что Вам нужно.
|
|
Back to top |
|
 |
|