Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
01.05.2004 00:17

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Люди я кричу, потому, что не могу больше!!! Помогите найти в исходниках глюк. Пишу текстовую игру на Borland C++ 3.1 Всё в одном файле на 253kb (=6500 строк) Когда компилю ругается и говорит, что "Too much global defined."
Объясните, что за фигня. Игра-то класная. Почти написал. Очень жалко бросать такой труд. Помогите, кто чем может. Пошлите мне письмо с советом или какой-то помощью. Я даже исходники дам. Лишь бы баг исправить. Очень прошу!!!
Заранее спасибо!

Неактивен

0    0    #2
01.05.2004 00:47

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Это, часом, не переполнение буфера из-за слишком большого числа глобальных переменных?

Подтверждение мысли:
"Too much global data defined in file
В файле объявлено слишком много глобальных данных
Сумма объявленных глобальных данных превысила по размеру 64К. Проверьте объявления массивов, которые могут быть причиной выхода за пределы памяти. Либо реорганизуйте программу, либо, если все объявления вам нужны, используйте переменные far."

Взято отсюда: http://www.referat.su/refs_new/19327/ref_part_120.shtml

P.S. Извиняюсь, я в C++ — чайник...

Неактивен

0    0    #3
01.05.2004 02:03

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Глобальных переменных мало, "far" уже пробавал, на библиотеки разбивал, модель памяти максимальная(даже оверлей делал), оптимизирую "по размеру .exe". Ещё мысли есть? ???

Неактивен

0    0    #4
03.05.2004 18:33

Adramelek
Участник (+1)
Зарегистрирован: 07.07.2006
Сообщений: 193

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

haM3r написал:

Люди я кричу, потому, что не могу больше!!! Помогите найти в исходниках глюк. Пишу текстовую игру на Borland C++ 3.1 Всё в одном файле на 253kb (=6500 строк) Когда компилю ругается и говорит, что "Too much global defined."

Возможно, стоит попробовать отделить данные от кода в отдельный файл? Всё-таки, по-моему, 253 Кб многовато для исходника... И зачем всё делать в одном файле? Лучше будет разбить на модули.

Неактивен

0    0    #5
05.05.2004 14:06

dennis
Участник
Зарегистрирован: 10.06.2003
Сообщений: 159

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Очевидный ответ на этот вопрос: переполнение какого-то из сегментов (скорее всего, сегмента глобальных данных, т.е. DGROUP или как там он назывался).

Какие у тебя есть в программе есть глобальные переменные (и особенно массивы)? Сколько они занимают совместно? Если их много (особенно массивов), нельзя ли от них избавиться? (Готов спорить на свою месячную зарплату, что избавиться можно без труда smile

И, кстати, что это за модель памяти — "самая большая"? LARGE, HUGE или может быть даже FLAT?

Неактивен

0    0    #6
06.05.2004 11:31

dennis
Участник
Зарегистрирован: 10.06.2003
Сообщений: 159

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

OOPS! Только сейчас пришла в голову очевидная мысль.

Игра, говоришь, текстовая? Т.е. содержит множество текстовых строк? Ну так текстовые строки в C вообще-то тоже являются статическими текстовыми массивами... Так что, если объем текста (вкупе с прочим) у тебя превысил 64K, ничего удивительного, что сегмент данных переполнился. smile

Неактивен

0    0    #7
09.05.2004 15:29

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

А что это мысль!!! Попробую как-нибудь текст ужать!!! Большое спасибо! [Кланяюсь]

Неактивен

0    0    #8
11.05.2004 13:37

dennis
Участник
Зарегистрирован: 10.06.2003
Сообщений: 159

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Вообще-то сжимать текст необязательно.
Лучше разбить файл на модули с примерно одинаковым объемом текста, и компилировать их раздельно. Модель при этом должна быть HUGE.

Неактивен

0    0    #9
12.05.2004 13:10

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Не получится на файлы разбить. У меня там такая неразбериха с процедурами, что чёрт ногу сломал. Да, к тому же попробовал разбивать - не понравилось(геморой)

Неактивен

0    0    #10
12.05.2004 22:41

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Мзда... :'( Урезал весь текст до минимума. Своими руками 25кб. (это одних только реплик) текста урезал. Теперь компилится, хорошо. Но, вот только начинаю писать код, как опять та же ошибка. Что делать? ???

Неактивен

0    0    #11
13.05.2004 13:36

dennis
Участник
Зарегистрирован: 10.06.2003
Сообщений: 159

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Если ты категорически не хочешь резать код на куски, то единственный выход — переходить с Борланда на что-нибудь 32-битное. Если, конечно, совместимость с XT и AT не является жизненно важной. smile
Рекомендую попробовать DJGPP.

Неактивен

0    0    #12
13.05.2004 18:26

Gray_Flannel_Armor
Участник
Зарегистрирован: 26.01.2004
Сообщений: 45

Кто хочет найти зло - найдет его. Авраам Линкольн.

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

dennis написал:

Если ты категорически не хочешь резать код на куски, то единственный выход — переходить с Борланда на что-нибудь 32-битное.

Чувак! Переходи на Borland C++ Builder 5.0 или выше. Если ты создашь консольное приложение, то увидишь, что код скомпилиться без проблем. Не насилуй себя, урезая текст, есть более простые решения.

Неактивен

0    0    #13
17.05.2004 13:20

dennis
Участник
Зарегистрирован: 10.06.2003
Сообщений: 159

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

То, что сказано выше, это тоже вариант. Правда, консольные приложения Win32, естественно, не пойдут под простым DOS. Подозреваю, что досовские программы Builder 5.0 не создает вообще. smile

Неактивен

0    0    #14
18.05.2004 13:26

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Это конечно хорошо перейти на Win32 консоль, но есть одна проблема - пробавал на Выжал Си 6.0. Он категорически не понимает функции textcolor, gettime, getdate, и тд, и тп.. Что делать в этом случае?

Неактивен

0    0    #15
18.05.2004 14:48

Olegus t.Gl.
Участник (+1053, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2879
Вебсайт

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Насчёт работы с текстовым экраном VC++ 6.0 всё прекрасно понимают, но на уровне WinAPI. В составе исходников есть прекрасный пример. Если нужно, могу выложить...

Неактивен

0    0    #16
19.05.2004 19:32

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Очень буду благодарен если скинешь на мыло.

Неактивен

0    0    #17
30.05.2004 00:38

haM3r
Участник
Зарегистрирован: 19.05.2004
Сообщений: 11

Re: ПОМОГИТЕ С ЖЕСТКИМ БАГОМ!!!!

Олег, спасибо за исходники, только я ничего в них не понял. Может быть у кого-нибудь есть процедуры(или идеи)
textcolor, clrscr, gettime, getdate для Visual C 6.0, очень нужно - игра на глазах гибнет. Поможите кто чем сможет. :'(

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru