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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2011, 20:36   #1
shushutka
 
Регистрация: 02.09.2011
Сообщений: 5
По умолчанию ошибка BGI в подключении графики (С++)

у меня стоит на нетбуке 7-ка и мне надо написать прогу в Borland C++ 3.1. Когда я запускаю программу, компилятор показывает что нет ошибок и все нормально, но когда просматриваю результат там выбивает сообщение: " BGI Error: Graphics not initialized (use InitGraph)"
уже переместила файл в BIN и запускаю через DosBox 0.73 версии, но эффекта никакого....

что делать?????

вот код проги:

Код:
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <dos.h>

class TShape {
protected:
  int x1, y1, color;
public:
  TShape(int ix1, int iy1, int icolor);
  ~TShape();
  virtual void Draw(int c) = 0;
  void Show();
  void Hide();
};

class TPoint : public TShape {
public:
  TPoint(int ix1, int iy1, int icolor);
  void Draw(int c);
};

class TCircle : public TShape { 
protected:
  int r;
public:
  TCircle(int ix1, int iy1, int ir, int icolor);
  void Draw(int c);
};

class TRect : public TShape {
protected:
  int x2, y2;
public:
  TRect(int ix1, int iy1, int ix2, int iy2, int icolor);
  void Draw(int c);
};

// TShape

TShape::TShape(int ix1, int iy1, int icolor) {
  x1 = ix1;
  y1 = iy1;
  color = icolor;
}

TShape::~TShape() {
}

void TShape::Show() {
  Draw(color);
}

void TShape::Hide() {
  Draw(BLACK);
}

//TPoint

TPoint::TPoint(int ix1, int iy1, int icolor): TShape(ix1, iy1, icolor) {
}

void TPoint::Draw(int c) {
  putpixel(x1, y1, c);
}

//TCircle

TCircle::TCircle(int ix1, int iy1, int ir, int icolor) :
TShape(ix1, iy1, icolor) {
  r = ir;
}

void TCircle::Draw(int c) {
  setcolor(c);
  circle(x1, y1, r);
}

//TRect

TRect::TRect(int ix1, int iy1, int ix2, int iy2, int icolor) :
TShape(ix1, iy1, icolor) {
  x2 = ix2;
  y2 = iy2;
}

void TRect::Draw(int c) {
  setcolor(c);
  rectangle(x1, y1, x2, y2);
}



main() {
clrscr();
  int i;
  TShape *A[30];
  int graphics_drivers = DETECT, graphics_modes;
  initgraph(&graphics_drivers, &graphics_modes, "..\\..\\BGI");
  randomize();
  for (i=0; i<30; i += 3)
   {
    A[i] = new TPoint(random(640), random(480), random(14)+1);
    A[i+1] = new TCircle(random(620)+10, random(460)+10, random(10), random(14)+1);
    A[i+2] = new TRect(random(640), random(480), random(640), random(480), random(14)+1);
  }
  while (!kbhit()) {
    for (i=0; i<30; i++) {
      A[i]->Show();
      delay(100);
      A[i]->Hide();
    }
  }
  getch();
  closegraph();
  return 0;
}

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 02.09.2011 в 22:23.
shushutka вне форума Ответить с цитированием
Старый 02.09.2011, 21:02   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

тут по-моему должно быть имя файла, а не путь к каталогу
initgraph(&graphics_drivers, &graphics_modes, "..\\..\\BGI");

и я ложил exe рядом с этим файлом, а потом запускал
counter вне форума Ответить с цитированием
Старый 02.09.2011, 21:38   #3
shushutka
 
Регистрация: 02.09.2011
Сообщений: 5
По умолчанию

я это тоже писала и делала... только оно работать не хочет... а без ВОХ-а вообще глючит(
shushutka вне форума Ответить с цитированием
Старый 02.09.2011, 22:28   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) положите все BGI файлы (в первую очередь egavga.bgi) туда, куда у Вас компилируется EXE файл (например, в папку BIN)

2) исправьте иницилизацию на
Код:
initgraph(&graphics_drivers, &graphics_modes, "");
пустая строчка в указании папки (директории) с BGI файлами означает, что программа будет искать нужный BGI там же, где лежит Ваш exeшник...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.09.2011, 22:45   #5
shushutka
 
Регистрация: 02.09.2011
Сообщений: 5
По умолчанию

всё ещё выводит ошибку((((
shushutka вне форума Ответить с цитированием
Старый 03.09.2011, 10:36   #6
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

А у меня даже исходный вариант работает.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 03.09.2011, 15:42   #7
shushutka
 
Регистрация: 02.09.2011
Сообщений: 5
По умолчанию

а можете кто то скинуть мне нормальный Борланд С++ 3.1?
shushutka вне форума Ответить с цитированием
Старый 03.09.2011, 21:43   #8
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

http://www.google.com.ua/search?q=%D...nd+c%2B%2B+3.1
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 11.09.2011, 23:18   #9
Angelic_fiend
Пользователь
 
Регистрация: 22.05.2010
Сообщений: 11
По умолчанию

На семерке не работает графика. Так как, графика требует полого разрешения экрана, а семерка эту функцию не поддерживает
Angelic_fiend вне форума Ответить с цитированием
Старый 12.09.2011, 00:57   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
На семерке не работает графика.
Поэтому и рекомендовано использовать DOSBox.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при подключении <MySQL.h> Lokran C/C++ Базы данных 1 01.07.2011 13:35
Ошибка с BGI графикой. zipwind C++ Builder 2 07.04.2011 02:22
Ошибка в подключении библиотеки в Delphi Ele Помощь студентам 3 14.05.2010 08:07
ОШИБКА:"error BGI graphics not ..." Panterka Помощь студентам 7 12.12.2007 17:06