Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2015, 00:20   #1
Timurkh77
Форумчанин
 
Регистрация: 16.02.2013
Сообщений: 137
По умолчанию Графическая ошибка

Написал программу на Borland C++ 4.5.Используется несколько битовых матриц.
Память из под них освобождаю оператором delete.Ошибок при компиляции нет.Но перед запуском программы выдается ошибка в MessageBox-е
GDI file read failure.Я думаю это графическая ошибка с переполнением
памяти битовыми матрицами.Но дело в том , что я из под них освобождаю
память и у меня всего 5 битовых матриц.По идее их компилятор должен тянуть.В чем ошибка и как ее исправить?Заранее путь и файл правильные.
Код:
#define FILERIS "f:\\Game\\Quensp1.bmp"
#define FILERIS2 "f:\\Game\\Quensp3.bmp"

#define FILERIS3 "f:\\Game\\background1.bmp"
#define FILERIS4 "f:\\Game\\background2.bmp"
#define FILERIS5 "f:\\Game\\background3.bmp"

int curr_frame=0;

int f=1;
int k=1;
int g=0;
int x=1;


class TMyWin : public TFrameWindow
{
 TBitmap * pbit,* pbit2,* pbitmap1,* pbitmap2,* pbitmap3;
 public:
		TMyWin():TFrameWindow(0,"The game-man")
		 {
		  TDib  *pdib=new TDib(FILERIS);
		  pbit=new TBitmap(*pdib);
		  delete pdib;
		  pdib=new TDib(FILERIS2);
		  pbit2=new TBitmap(*pdib);
		  delete pdib;

		  pdib=new TDib(FILERIS3);
		  pbitmap1=new TBitmap(*pdib);
		  delete pdib;

		  pdib=new TDib(FILERIS4);
		  pbitmap2=new TBitmap(*pdib);
		  delete pdib;

		  pdib=new TDib(FILERIS5);
		  pbitmap3=new TBitmap(*pdib);
		  delete pdib;
		 }
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 22.12.2015 в 09:25.
Timurkh77 вне форума Ответить с цитированием
Старый 23.12.2015, 01:00   #2
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Цитата:
Написал программу на Borland C++ 4.5.
Судя по Википедии, эта версия 1995 года. Обновите, может баг исчезнет. Такое иногда бывает со старыми версиями, как и с очень новыми.
8Observer8 вне форума Ответить с цитированием
Старый 23.12.2015, 10:30   #3
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

http://www.programmersforum.ru/showthread.php?t=271867
waleri вне форума Ответить с цитированием
Старый 24.12.2015, 00:53   #4
Timurkh77
Форумчанин
 
Регистрация: 16.02.2013
Сообщений: 137
По умолчанию

8Observer8 я эту программу уже несколько раз устанавливал и всегда выдается одна и та же ошибка.Что вы имеете в виду под обновить?
К тому же мне кажется дело не в этом.
Timurkh77 вне форума Ответить с цитированием
Старый 24.12.2015, 01:00   #5
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Обновить, это значит поставить последнюю версию. Я думаю, сейчас Borland никто не использут. Может вместо Borland'а лучше использовать что-то более современное, например, Qt?
8Observer8 вне форума Ответить с цитированием
Старый 27.12.2015, 23:33   #6
Timurkh77
Форумчанин
 
Регистрация: 16.02.2013
Сообщений: 137
По умолчанию

У меня версия Borland-a 4.5.В другой версии программа не пойдет.К тому же
я думаю дело в переполнении памяти.
Timurkh77 вне форума Ответить с цитированием
Старый 28.12.2015, 11:00   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Представьте, что вы вам на работе дали это задание на месяц, а вы растянули его почти на год, судя по этой теме.

Выбирайте другой инструмент для решения вашей задачи. Лучше всего C# WPF. Либо C# WinForms. Там не будет проблем с указателями.
8Observer8 вне форума Ответить с цитированием
Старый 03.01.2016, 01:24   #8
Timurkh77
Форумчанин
 
Регистрация: 16.02.2013
Сообщений: 137
По умолчанию

Я стал подозревать , что GDI file read failure это ошибка чтения файла , графическая.Прав ли я?И что делать?Я пытался указать текущий каталог
при чтении файла и скидывал графические файлы в каталог BIN , но и это не помогло.Что делать?

TDib *pdib=new TDib("Quensp1.bmp");
pbit=new TBitmap(*pdib);
Timurkh77 вне форума Ответить с цитированием
Старый 10.10.2016, 00:50   #9
Timurkh77
Форумчанин
 
Регистрация: 16.02.2013
Сообщений: 137
По умолчанию

Помогите пожалуйста с программой.
Timurkh77 вне форума Ответить с цитированием
Старый 10.10.2016, 09:33   #10
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Borland C++ 4.5 - не поддерживает нужный формат файла. Попробуйте загружать картинке сохранённые в формате 256 цвета.
Вам уже сказали, что надо обновите компилятор.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
графическая ошибка Timurkh77 Общие вопросы C/C++ 7 03.09.2015 02:45
Графическая задача Req Помощь студентам 0 14.12.2012 20:43
Графическая библиотека C++ three_cats Visual C++ 4 23.11.2012 18:11
Графическая оболочка C++ Якъ Общие вопросы C/C++ 2 09.02.2011 00:32
Графическая Nextgen Общие вопросы C/C++ 0 12.02.2010 09:08