|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.09.2014, 01:58 | #1 | |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 149
|
Borland C++ 4.5
Написал программу с графикой в Borland C++ 4.5.У меня подозрение , что
выдается ошибка памяти.Это происходит после того ,как программа уже должна запускаться.Выходит табличка с надписью: Цитата:
Вызываю через таймер постоянно функцию Invalidate() , которая вызывает Paint.В Paint-е вывожу в цикле объекты Код:
Код:
Последний раз редактировалось Stilet; 03.09.2014 в 08:05. |
|
03.09.2014, 08:15 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А почему ты решил что это ошибка связанная с памятью?
I'm learning to live...
|
03.09.2014, 19:59 | #3 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 149
|
Я подумал ,что если вначале синтактических ошибок не выдается , то у меня происходит переполнение памяти.Дело в том ,что у меня циклически
вызывается функция Paint.А в Paint в цикле выводятся много пикселей графически , используя функцию SetPixel на контексте грфического устройства dc.Вот я и думаю , что у меня из-за большого количества графических объектов происходит переполнение памяти.Больше грешить не на что. В программе выдается ошибка Exception-исключение ,не знаю на что и грешить. Может мне выложить всю программу в ней всего 94 строки.Может вы тогда сможете обнаружить ошибку. |
03.09.2014, 20:34 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ну попробуй. Билдера у меня вроде нет, но может другие форумчане подключатся.
Впрочем если выложишь, я хоть на глаз проанализирую. Може и увижу бячку )
I'm learning to live...
|
03.09.2014, 21:36 | #5 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 149
|
Посылаю программу:
Код:
Последний раз редактировалось Stilet; 03.09.2014 в 22:14. |
03.09.2014, 22:22 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Так, стопэ! Это же прога для DOS. Да?
Ты ее из-под какой винды запускаешь? Подозреваю что тебе нужен DosBox для работы в Borland C++ 4.5. Или как минимум запуск в режиме совместимости. Или я ошибаюсь?
I'm learning to live...
|
03.09.2014, 22:48 | #7 |
Участник клуба
Регистрация: 30.07.2008
Сообщений: 1,601
|
SetPixel принимает 2 аргумента типа int. Может быть, ошибка из-за преобразования типов? Попробуйте явно преобразовывать типы в вызове SetPixel.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
|
04.09.2014, 00:20 | #8 |
Форумчанин
Регистрация: 16.02.2013
Сообщений: 149
|
Программа написана под Windows , а не под DOS.С библиотекой OWL для
Borland C++ 4.5. Challangger-у я подумал , что дело в преобразовании типов написал dc.SetPixel((int)stars[index].x,(int)stars[index].y,col); все равно выдает одну и ту же ошибку. |
04.09.2014, 08:02 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Знаешь, есть один хороший метод выявления ошибок: Закомментируй код, ну в смысле внутренности методов. Запусти - выдаст ошибку или нет? Если нет - раскомментируй по одной и запускай, пока не получишь ошибку. Будешь знать в каком месте она всплывает.
I'm learning to live...
|
04.09.2014, 08:21 | #10 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
Еще можно запустить программу под отладчиком.
Когда прога сломается сразу видно из какого вызова. Edit: Кстати, при такой реализации будет сильное мигание экрана. При рисовании лучше каждую точку сначала рисовать черным цветом, потом пересчитывать координаты и рисовать на новом месте. И еще, все операции со stars[index] можно вынести в парочку методов в структуре STAR3D_TYP. Навскидку, у нас есть init(), draw() и next(). Последний раз редактировалось waleri; 04.09.2014 в 08:34. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Borland с++ 3.1 | Firhov | Общие вопросы C/C++ | 7 | 25.10.2011 19:21 |
unable to rename 'C:\ProgramFiles\Borland\Delphi7\Bi n\Delphi32.$$$' to 'C:\Program Files\Borland\Delphi7\ | KazBoy | Помощь студентам | 1 | 12.04.2011 18:07 |
Borland C++ | ~eXe~ | Помощь студентам | 1 | 16.06.2010 00:04 |
Borland C | J-lo | Помощь студентам | 1 | 15.04.2010 23:20 |
не могу запустить ехешник ,Borland 5 и Borland 6 | error_13 | Общие вопросы C/C++ | 0 | 31.01.2010 14:04 |