Dosbox bgi error graphics not initialized use initgraph

I gave the location of bgi folder in my C drive as below: initgraph(&gd,&gm,"C:\TurboC++\Disk\TurboC3\BGI"); The program compiles without any error but while running nothing appears...

I gave the location of bgi folder in my C drive as below:

initgraph(&gd,&gm,"C:\TurboC++\Disk\TurboC3\BGI");

The program compiles without any error but while running nothing appears…

When I press Alt+F5 I found this error. How to resolve this?

genpfault's user avatar

genpfault

50.5k10 gold badges85 silver badges136 bronze badges

asked Jul 16, 2013 at 17:45

user1943533's user avatar

1

I hope this helps:

Now, as we know the BGI folder is usually in the following path,

C:TurboC++diskTurboC3BGI

BGI is inside the folder «TurboC3» and NOT «TC».

So the code you need to put in your program is as follows,

initgraph(&gd, &gm, "C:\TurboC3\BGI");

answered Sep 9, 2013 at 11:15

Theja's user avatar

ThejaTheja

2,4483 gold badges14 silver badges17 bronze badges

After declaring variable.

You have to write the following code in your program.

initgraph(&gd , &gm ,"C:\TurboC++\BGI");

Himanshu's user avatar

Himanshu

4,30116 gold badges30 silver badges39 bronze badges

answered Oct 24, 2013 at 4:43

Khan Sumaiyya's user avatar

13 / 13 / 13

Регистрация: 20.06.2011

Сообщений: 82

1

08.10.2011, 18:18. Показов 6658. Ответов 3


При запуске программы с графикой пишет Bgi error :graphics not initialized(Use InitGraph)Пробовал пути к папке BGI менять,саму папку таскал всюду — не помогает(((
Windows 7-64 bit Turbo paskal 7.1 Запускаю через DosBox

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



247 / 205 / 26

Регистрация: 03.02.2009

Сообщений: 785

09.10.2011, 06:45

2

Вообще-то это не ошибка Паскаля, а ваша ошибка!
Приведите вашу программу, будем смотреть!



1



ray_nixon

13 / 13 / 13

Регистрация: 20.06.2011

Сообщений: 82

09.10.2011, 16:55

 [ТС]

3

Он любую графическую программу не запускает но последнее что пытался запустить это вот эта

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
uses crt,graph;
var gd,gm:integer;
 
procedure MoveRect;
var x,y,x1,y1:integer;
    c1,c2:byte;
    k:char;
    move:boolean;
begin
x:=280;y:=200;
c1:=12;c2:=0;
move:=true;
repeat
if keypressed then
  begin
    k:=readkey;
    if (k=#83)or(k=#115)or(k=#155)or(k=#238) then
      begin
        y1:=y;
        x1:=x;
        y:=y+5;
        move:=true;
      end;
    if (k=#87)or(k=#119)or(k=#150)or(k=#230) then
      begin
        y1:=y;
        x1:=x;
        y:=y-5;
        move:=true;
      end;
    if (k=#68)or(k=#100)or(k=#130)or(k=#162) then
      begin
        y1:=y;
        x1:=x;
        x:=x+5;
        move:=true;
      end;
    if(k=#65)or(k=#97)or(k=#148)or(k=#228) then
      begin
        y1:=y;
        x1:=x;
        x:=x-5;
        move:=true;
      end;
  end;
if move then
  begin
   Setcolor(c2);
   Rectangle(x1,y1,x1+80,y1+80);
   Setcolor(c1);
   Rectangle(x,y,x+80,y+80);
   move:=false;
  end;
until k=#27;
end;
begin clrscr;
gd:=detect;
Initgraph(gd,gm,'D:BGI');
OutTextXY(100,20,'Uprawlenye A-vlevo; W-vverh; D-vravo; S-vniz; Vyhod-Esc;');
MoveRect;
end.



0



o-user

247 / 205 / 26

Регистрация: 03.02.2009

Сообщений: 785

10.10.2011, 06:47

4

1. Перепишите файл EGAVGA.BGI в папку с программой (в папку с файлом PAS).

2. На всякий случай исправьте строку:

Pascal
1
Initgraph(gd,gm,'D:BGI');

на строку:

Pascal
1
Initgraph(gd,gm,'');

3. У меня все заработало (как только выполнил пункт 1).
Квадрат ездит, но выбегает за границы экрана…



1



necrocore

Есть специализированная программа для электротехнических задач, называется NRast.
Прога довольно старая, писалась ещё чуть ли не под Дос, является 16-битным приложением.
Соответственно, аналогов нету и новые программы использовать возможности нет.
Нужно подружить эту старую программу с win7 или с winxp
1. На winXP 32битной она нормально запускается. Проблема в следующем: печать из программы изображений не реализована. Так что печатаем методом принтскрина. Дело в том, что если сделать принтскрин из программы и вставить в пэйнт, например, то получим просто белый экран. Я так понимаю, что это проблема с наличием оверлея в программе. Есть идеи как эту проблему решить? Из-под досбокса принтскрин работает при этом нормально.
Реализовать это можно путём загрузки проги через Досбокс и печати. В этом случае NRast тормозит при расчётах, даже на максимальных циклах, выставленных в Досбоксе.
2. На win7 она вообще не запускается с ошибкой «This system does not support full screen mode».
При запуске через Досбокс возникает ошибка «BGI error: graphics not initialized (use initgraph)»
EGAVGA.bgi в наличии имеется, открыт на запись и чтение.
Запускается всё под администратором. Режимы совместимости с предыдущими виндами не помогли.
Есть у кого-нибудь идеи по данному вопросу?
Исходников NRast не имею и вряд ли смогу раздобыть.
П.С. есть идея устанавливать виртуальную вин98 и из-под неё уже всё делать. Это наверное выход, но проблема в том, что народ, который в офисе эту прогу использует слабо понимает в компьютерах что-то кроме этой программы.
П.П.С. За решение этой проблемы, готов предложить денежное вознаграждение. Можно в приват.

Dasar

На win7 она вообще не запускается с ошибкой «This system does not support full screen mode».

т.е. она запускается на полный экран?
а если ее запускать не на полный экран?

Serab

Судя по тому, что там нужны какие-то bgi, там графический режим :)

necrocore

http://www.mydigitallife.info/2007/06/27/workaround-to-this-…

спасибо, эту ссылку видел и читал.
остаётся всё равно проблема с оверлеями при печати (если это конечно оверлей).
Узнал, что прога писалась на Фортране, соответственно там точно графический режим VGA 640*480 стоит. Как его принтскринить?
Ну и в досбоксе под win7 по прежнему остаётся вышеописанная проблема с графикой

Dasar

остаётся всё равно проблема с оверлеями при печати (если это конечно оверлей).

поставь скриншотер, который умеет работать с оверлеями.

necrocore

windows xp mode не пробовал?

нет, не пробовал.
щас попробую.
мой ноут эту тему не поддерживает.
щас попробую на другом.
а что это, что-то типа виртуальной системы VmWare ?

juliuzz

а что это, что-то типа виртуальной системы VmWare ?

ага
микрософтовский VirtualPC

Ivan8209

> Узнал, что прога писалась на Фортране,
Вот это довольно-таки плохо вяжется с ранее заявленным
> «BGI error: graphics not initialized (use initgraph)»
А вот это:
> соответственно там точно графический режим VGA 640*480 стоит.
вообще non sequitur.

…Я работаю антинаучным аферистом…

yroslavasako

является 16-битным приложением.

для исполнения этого кода необходим ntvdm (nt virtual dos mashine) . В 64-битных системах его нет вообще, в семёрке тоже. Более того из соображений безопасности (дырка отрытая на протяжении 17 лет, которую MS не смог закрыть за полгода с момента багерпорта) ntvdm рекомендуется выключать. Для работы с dos приложениями лучше всего использовать полную эмуляцию программой dosbox

Ivan8209

> Для работы с dos
Надо будет попробовать запустить его в «доме.»

«NetBSD is JIHBED!»

necrocore

> Узнал, что прога писалась на Фортране,
Вот это довольно-таки плохо вяжется с ранее заявленным
> «BGI error: graphics not initialized (use initgraph)»

сорри, да, натупил. нехрен слушать всех подряд
писалась на Паскале, естественно.

necrocore

является 16-битным приложением.
для исполнения этого кода необходим ntvdm (nt virtual dos mashine) . В 64-битных системах его нет вообще, в семёрке тоже. Более того из соображений безопасности (дырка отрытая на протяжении 17 лет, которую MS не смог закрыть за полгода с момента багерпорта) ntvdm рекомендуется выключать. Для работы с dos приложениями лучше всего использовать полную эмуляцию программой dosbox

Ок, я его и использую. Ошибку выдаёт. В ХП её вроде не выдаёт.
А что за дырка? И насколько это опасно?

juliuzz

И насколько это опасно?

настолько опасно, что никто до сих пор не воспользовался :grin:

stm4836248

:lol:

necrocore

Смог запустить на 32битной Win7 только путём установки старых ХПшных дров на видеокарту.
Проблема теперь в том, что скриншот сделать хз как.
Приложение полноэкранное, и не хочет сворачиваться. Тупо вылетает или виснит.
Похоже, варианта 2:
1. Ставить виртуальную ХП или 98ю винду.
2. Искать способ побороть ошибку в Досбоксе.
С ХПшными дровами на видео досбокс выдаёт всё ту же ошибку по поводу BGI….

yroslavasako

А что за дырка? И насколько это опасно?

возможность получить доступ к ring0. Для досового кода понятия ring не существует, но оно учитывается эмулятором (ntvdm). Проблема в том, что сабж написан MS с крайне низким радиусом кривизны, в нём есть возможность произвести jailbreak и выбраться за пределы эмулируемой машины, получив ring0 полномочия. Фактически, если пользователю даны права на запуск 16приложений, он всегда может получить рута

1. Ставить виртуальную ХП или 98ю винду.

Можно и так. Тогда отпадут проблемы с взятием скриншотов

necrocore

Поставил VMWare от Sun, установил ХП туда виртуальную.
Всё заработало, скриншоты естественно не проблема теперь.
Только возникла другая проблема — программа даже в полнооконном режиме работает с размером окна 640*480 и на весь экран растянуть её не получается.
Когда запускаю на хосте — она автоматически растягивается на полный экран.
Когда запускаю на ВМ — она занимает только часть экрана 640*480, а вокруг чёрные полосы. То есть ВМ не растягивает изображение на весь экран.
Кто-нить знает как можно с этим справиться?
Использование программы на весь экран принципиальный момент.

Maurog

Menu->View->Autofit не поможет?

dickofan

зайти на виртуалку по RDP? :grin:

stm4836248

VMWare — проприетарная хуйня, использование которой оправдано только если нужен х64 гест на х86 хосте. Если уж взялся за неё, то, наверное, тебе поможет установка «Guest additions» (или как-то по-другому — сейчас уже точно не помню). Там, в общем, в панели меню поройся — это где-то есть.
Потом на госте установится программка и, наверное, прога запустится на фулскрин.

necrocore

никакого эффекта.
VMTools обновил.
может надо как-то настроить монитор гостя специально?
но чё-то от настроек похоже ничего не меняется…

necrocore

ок, тогда посоветуй другую машину?
желательно, чтобы была максимально мощной, так как нужна хорошая производительность.
ппц я задолбался уже
Значит вот ещё что сделал — поставил в ВМ монитор разрешение 640 на 480.
Теперь в ВМ запускается окно на весь экран ВМ. Но на моём реальном мониторе выглядит это как мелкое окно в центре, окружённое чёрными полями.
То есть соответствие программы с фулскрином ВМ получилось. Надо только теперь чтобы ВМ растянулась на весь мой реальный экран как-то чтоли.

Ivan8209

> желательно, чтобы была максимально мощной, так как нужна хорошая производительность.
Чё? Программы от багланда надо было править отладчиком,
чтобы они продолжали работать на вторых, что ли, пнях.

«Suicide is painless,
it brings on many changes…»

Dasar

Надо только теперь чтобы ВМ растянулась на весь мой реальный экран как-то чтоли.

тыкни тычку в меню vm — развернуть на полный экран

necrocore

Чё? Программы от багланда надо было править отладчиком,
чтобы они продолжали работать на вторых, что ли, пнях.

знаешь, ну что уж там понаписали в 96 году, то и юзаем.
К слову, щас стартует бизнес-проект по написанию такой же софтины+кое какие доработки под современные системы.
Если что, программисты требоваться будут, так что можешь в приват если интересно. )
А пока что я ебусь с тем, чтобы эти дрова 96 года хоть как-то совместить с 7кой или ХП.

necrocore

сделал, заработало, спасибо.
только малость глючит мыша и производительность страдает сильно.

apl13

писалась на Паскале, естественно.

А на сях не могла?

apl13

Чё? Программы от багланда надо было править отладчиком,
чтобы они продолжали работать на вторых, что ли, пнях.

Для ТП был патч к crt.tpu.

yolki

если программе не нужен доступ к оборудованию через ком-порты или (омг!) ISA шину — то могу посоветовать VirtualBox — одна из лучших виртуалок.
ставишь на неё дос и радуешься.

durka82

Насчёт досбокса — сложилось впечатление, что он ну очень сильно тормозит при работе с винтом — мб именно из-за этого тормоза и проявляются.
По идее можно сделать рамдиск и запускать с него, но не пробовал.
Хотя полноценная виртуалка конечно всегда лучше :)

356ft85

Запусти на winxp перед прогой резидентый скриншотер какой нить досовский, чтобы делать скриншот не средствами винды а «средствами доса»

necrocore

Спасибо, щас попробую.

necrocore

Короче я не знаю почему, но программа на ВМ сильно теряет в производительности.
И второй момент. Я очень долго манался, чтобы ХП поставить на эту новую Соньку. В итоге поставил с 10 раза, до этого постоянно после загрузки файлов он мне БСОД вываливал.
Ну так программа на ХП не идёт! Скотина пишет какую-то процессорную ошибку. ХЗ как с ней бороться, похоже что никак.
В качестве временного решения — куплю старую железяку, поставлю туда 98ю винду и эту прогу.
В качестве постоянного решения:
1. Разработка нового ПО на основе старого (в случае, если удастся надыбать исходники или автора программы привлечь)
2. Поиск ПО, способного заменить эту программу.
Вот тут хотелось бы мнение форумчан узнать, может кто в курсе.
Необходимо ПО, способное строить схемы с электрическими и магнитными связями + анализировать режимы работы этой схемы.
PCad смотрел — не умеет с магнитными потоками работать, насколько я понял.
Если груба — то программа тупо моделирует трансформаторы с тиристорными блоками и режимы их работы.
Есть у кого какие идеи?

necrocore

Кстати, ошибка на ХП следующая:

16-разрядная система MS-DOS
Процессор NTVDM обнаружил недопустимую инструкцию.
CS:0000 IP:0075 OP:f0 00 f0 37 05

elenangel

какую-то процессорную ошибку

не деление на ноль случаем? это древний баг паскалевского модуля crt на быстрых процессорах.
p.s. опередил c ответом

necrocore

баг crt на быстрых процессорах.
p.s. опередил c ответом

вот хз, на 10 других компах под XP идёт, а тут нет.
Хотя один и тот же экзешник тестил.

356ft85

Тыж написал что «1. На winXP 32битной она нормально запускается. «
или в итоге ненормально? на обычной винде XP без всяких виртуальных машин не работает?

Quote Originally Posted by rahul_shilps
View Post

I am facing problem of

BGI Error: Graphics not initialized (use ‘initgraph’)

In fact i have provided correct invocation of initgraph method

initgraph(….,»C:\Turboc3\bgi»);

i found that there is no file like bgi in Turboc3..

please help me how can i initialize graphics.

Help me.

In Turbo C/C++, the graphics driver files are in the C:TCBGI directory, by default.

This is how you use it, and an example program (which just draws a white line on a black graphics screen).

initgraph Initializes the graphics system.

Syntax:
void far initgraph(int far *graphdriver, int far *graphmode,
char far *pathtodriver);

Prototype in:
graphics.h

Remarks:
initgraph initializes the graphics system by loading a graphics driver from
disk (or validating a registered driver), and putting the system into
graphics mode.

To start the graphics system, first call the initgraph function. initgraph
loads the graphics driver and puts the system into graphics mode.

You can tell initgraph to use a particular graphics driver and mode, or to
autodetect the attached video adapter at run time and pick the corresponding
driver.

If you tell initgraph to autodetect, it calls detectgraph to select a
graphics driver and mode.

initgraph also resets all graphics settings to their defaults (current
position, palette, color, viewport, and so on) and resets graphresult to 0.

Normally, initgraph loads a graphics driver by allocating memory for the
driver (through _graphgetmem), then loading the appropriate .BGI file from
disk.

As an alternative to this dynamic loading scheme, you can link a graphics
driver file (or several of them) directly into your executable program file.
See UTIL.DOC (included with your distribution disks) for more information on
BGIOBJ.

� pathtodriver specifies the directory path
where initgraph looks for graphics
drivers.

initgraph first looks in the path
specified in pathtodriver, then (if
they’re not there) in the current
directory. Accordingly, if pathtodriver
is null, the driver files (*.BGI) must be
in the current directory.

This is also the path settextstyle
searches for the stroked character font
files (*.CHR).

� *graphdriver is an integer that specifies
the graphics driver to be used. You can
give it a value using a constant of the
graphics_drivers enumeration type,
defined in graphics.h and listed in the
table below.

graphics_drivers �
constant � Numeric value
�������������������������������������������������� �������
DETECT � 0 (requests autodetection)
CGA � 1
MCGA � 2
EGA � 3
EGA64 � 4
EGAMONO � 5
IBM8514 � 6
HERCMONO � 7
ATT400 � 8
VGA � 9
PC3270 � 10

� *graphmode is an integer that specifies
the initial graphics mode (unless
*graphdriver equals DETECT. In this
case, *graphmode is set by initgraph to
the highest resolution available for the
detected driver).

You can give *graphmode a value using a
constant of the graphics_modes
enumeration type, defined in graphics.h
and listed in the table above.

graphdriver and graphmode must be set to valid values from or you’ll get
unpredictable results.

The exception is graphdriver = DETECT.

In the following table, the palette listings C0, C1, C2, and C3 refer to the
four predefined four-color palettes available on CGA (and compatible)
systems.

You can select the background color (entry #0) in each of these palettes,
but the other colors are fixed.

These palettes are described in greater detail in Chapter video, «videott,»
in book3 (in the section titled «Color control,» toward the end of the
chapter) and summarized in Table palette.

Palette � Color assigned to pixel value
number � 1 2 3
�������������������������������������������������� �������
0 � LIGHTGREEN � LIGHTRED � YELLOW
1 � LIGHTCYAN � LIGHTMAGENTA � WHITE
2 � GREEN � RED � BROWN
3 � CYAN � MAGENTA � LIGHTGRAY

After a call to initgraph, *graphdriver is set to the current graphics
driver, and *graphmode is set to the current graphics mode.

Graphics� � � Column � �
driver � graphics_modes � Value � x row � Palette � Pages
�������������������������������������������������� ��������������������
CGA � CGAC0 � 0 � 320 x 200� C0 � 1
� CGAC1 � 1 � 320 x 200� C1 � 1
� CGAC2 � 2 � 320 x 200� C2 � 1
� CGAC3 � 3 � 320 x 200� C3 � 1
� CGAHI � 4 � 640 x 200� 2 color� 1
MCGA � MCGAC0 � 0 � 320 x 200� C0 � 1
� MCGAC1 � 1 � 320 x 200� C1 � 1
� MCGAC2 � 2 � 320 x 200� C2 � 1
� MCGAC3 � 3 � 320 x 200� C3 � 1
� MCGAMED � 4 � 640 x 200� 2 color� 1
� MCGAHI � 5 � 640 x 480� 2 color� 1
EGA � EGALO � 0 � 640 x 200� 16 color� 4
� EGAHI � 1 � 640 x 350� 16 color� 2
EGA64 � EGA64LO � 0 � 640 x 200� 16 color� 1
� EGA64HI � 1 � 640 x 350� 4 color� 1
EGA-MONO� EGAMONOHI � 3 � 640 x 350� 2 color� 1*
� EGAMONOHI � 3 � 640 x 350� 2 color� 2**
HERC � HERCMONOHI � 0 � 720 x 348� 2 color� 2
ATT400 � ATT400C0 � 0 � 320 x 200� C0 � 1
� ATT400C1 � 1 � 320 x 200� C1 � 1
� ATT400C2 � 2 � 320 x 200� C2 � 1
� ATT400C3 � 3 � 320 x 200� C3 � 1
� ATT400MED � 4 � 640 x 200� 2 color� 1
� ATT400HI � 5 � 640 x 400� 2 color� 1
VGA � VGALO � 0 � 640 x 200� 16 color� 2
� VGAMED � 1 � 640 x 350� 16 color� 2
� VGAHI � 2 � 640 x 480� 16 color� 1
PC3270 � PC3270HI � 0 � 720 x 350� 2 color� 1
IBM8514 � IBM8514HI � 1 � 1024 x 760� 256 color�
� IBM8514LO � 0 � 640 x 480� 256 color�

* 64K on EGAMONO card
** 256K on EGAMONO card

Return Value:
initgraph always sets the internal error code.

On success, it sets the code to 0. If an error occurred, *graphdriver is set
to -2, -3, -4, or -5, and graphresult returns the same value as listed in
the following table:

grNotDetected � -2 � Cannot detect a graphics card
grFileNotFound � -3 � Cannot find driver file
grInvalidDriver � -4 � Invalid driver
grNoLoadMem � -5 � Insufficient memory to load driver

Portability:
This function is unique to Turbo C++.

It works only with IBM PCs and compatibles equipped with supported graphics
display adapters.

See Also:
closegraph graphresult
detectgraph installuserdriver
getdefaultpalette registerbgidriver
getdrivername registerbgifont
getgraphmode restorecrtmode
getmoderange setgraphbufsize
graphdefaults setgraphmode
_graphgetmem

Example:

Code:

 #include <graphics.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <conio.h>

 int main(void)
 {
    /* request auto detection */
    int gdriver = DETECT, gmode, errorcode;

    /* initialize graphics mode */
    initgraph(&gdriver, &gmode, "");

    /* read result of initialization */
    errorcode = graphresult();

    if (errorcode != grOk)  /* an error occurred */
    {
       printf("Graphics error: %sn", grapherrormsg(errorcode));
       printf("Press any key to halt:");
       getch();
       exit(1);             /* return with error code */
    }

    /* draw a line */
    line(0, 0, getmaxx(), getmaxy());

    /* clean up */
    getch();
    closegraph();
    return 0;
 }

This runs on two of my graphics cards, in Windows XP. The aspect ratio may distort things, depending on your monitor’ and graphics cards settings.

Member Avatar

15 Years Ago

Hi all,

I have already used InitGraph and have given the path(C:\TCBGI) in Initgraph and checked the Graphics option in Linker Options. Still Iam getting this error. I want a solution. Can somebody pls help me. Its urgent.


Recommended Answers

A wild stab in the dark suggests that you need to double up the second in your pathname, so

C:\TCBGI

But since you’ve only paraphrased the problem, who knows whether that typo exists in your actual code, or whether there is some other problem you haven’t bothered …

Jump to Post

of course the BGI is 20+ year old technology first developed for DOS 3 and never meant for use under Windows so it’s quite possible even if you called the method that it failed and you didn’t properly handle that failure.

Jump to Post

Go to c:tc and make sure there is a folder named «BGI» and that the drivers are in it.

Jump to Post

All 35 Replies

Member Avatar


Salem

5,138



Posting Sage


15 Years Ago

Member Avatar


jwenting

1,855



duckman



Team Colleague


15 Years Ago

of course the BGI is 20+ year old technology first developed for DOS 3 and never meant for use under Windows so it’s quite possible even if you called the method that it failed and you didn’t properly handle that failure.

Member Avatar

15 Years Ago

Hi all,

The option is working in my office while it is not working in my home system. Pls help me fix this problem.

Thanks

Member Avatar

15 Years Ago

Go to c:tc and make sure there is a folder named «BGI» and that the drivers are in it.

Member Avatar

13 Years Ago

Well , Using the same ancient Turbo C++ 3.0 in school, i ran into the same problem. The two lines of graphics above should be :
Assuming that you installed Turbo C to C:TC

int gd=DETECT,gm;
initgraph(&gd,&gm,"C:\TC\BGI");

Obviously include the graphics.h.
If it still doesnt work , Press CTRL-F , then D.
(Dos Shell from the Compiler File Menu).
Write :

C:TCBGI
exit

It should work now. If it still doesnt work , im pretty sure that its a corrupted installation or you are missing the *.BGI Files.
Also , I think you’d have done this , but dont forget to enable the Graphics Libraries in Options > Linker > Libraries.

Edited

13 Years Ago
by ashmew2 because:

n/a

Member Avatar

13 Years Ago

You are required to check whether the compiler is installed in c drive or not
if it is installed in other drive u must specify the program as
for eg. it is installed in d drive

d:\tc\bgi

and also change the path in the compilers directory

Member Avatar

13 Years Ago

thanks guys mah first day on this website and i got the answer for mah question…..the same of bgi error

Member Avatar

12 Years Ago

just copy the file egavga.bgi from your /bgi folder and paste it in your /bin folder.
You should’nt be getting the error any more.

Member Avatar

12 Years Ago

Thank u guys….me too got d same error nd resolved it :)

Member Avatar


hinduengg

26



Junior Poster in Training


12 Years Ago

Dear Indrapriya,

Please mark the problem as solved.

Edited

12 Years Ago
by hinduengg because:

n/a

Member Avatar

12 Years Ago

hi all i am using windows 7 ultimate and i got this same error when i run my pgm also i got linker error like you…bt i solved this prbl by using DOSBOX 0.74..now my pgm is running smoothly..i have followed these steps
1.download dosbox 0.74
2.create a folder say «Turbo» in c:
3.download turboc for window 7 ultimate 32 bit
4.extract zip file into «Turbo»
5.from START->Dosbox->options->dosbox options->(you can see a word documnet open it)->@ the end of document add the following steps
mount d c:Turbo
d:
cd tc
cd bin
tc
then save
6.then go to c window(c:turbotcbintc.exe)->directories->type D:TCINCLUDE
and D:TCLIB
7.also in Linker->Libraries->enable Graphics library
8.also put a line in main()
initgraph(&gd,&gm,»d;\tc\bgi»);
Best of luck……….:)

Member Avatar

12 Years Ago

initgraph(&gd, &gm, «C:\TC\BGI»);
What does the «\» in the path specified in initgraph signify?

Member Avatar


Adak

419



Nearly a Posting Virtuoso


12 Years Ago

The path to the BGI drivers.

Member Avatar

12 Years Ago

I meant what does the usage of \ instead of mean? What is its significance?

Member Avatar


Adak

419



Nearly a Posting Virtuoso


12 Years Ago

The backslash char is an escape char in C. It’s paired up with another char to represent something difficult to type: like n for a newline char, or t for a tab, etc.

Two backslashes is used when you want to delineate just one backslash itself.

Member Avatar

12 Years Ago

Edited

12 Years Ago
by INDIAN_007 because:

n/a

Member Avatar

12 Years Ago

hello frnds ……..on Window 7 error occur or not output show of graphics.h program……….for this i have simple one solution…..
go to end link and check …..and forward this for other .because i understand this that i have face…………so help others …….not forget to say thanx…..
email-toohaapy@rocketmail.com


link—> http://www.uniqueness-template.com/devcpp/

read carefully all steps…….

Member Avatar

12 Years Ago

thanks i resolved my error

Member Avatar

Member Avatar

11 Years Ago

dear shahana….
ur post ws realy helpful………..thnkxxxxxx it solved ma probs………

Edited

11 Years Ago
by kulpreet lkaur because:

n/a

Member Avatar

11 Years Ago

You can also use instead-

int gd=DETECT,gm;
initgraph(&gd,&gm,"C:/TC/BGI");

Member Avatar

11 Years Ago

pleaser close this thread its too old(4 yrs) now…..

Member Avatar


N1GHTS

102



Posting Whiz in Training


11 Years Ago

pleaser close this thread its too old(4 yrs) now…..

Normally I would say the same thing, except that most of the «bump» comments were praising the information on this thread. While that isn’t adding anything useful to this thread, it takes effort to browse Google, find this information, and feel so compelled by its influence that they go through the entire DaniWeb registration procedure just to thank the poster.

Also, just to play the devils advocate, you yourself submitted a comment to a 4 year old thread before your comment that no one else should. Ironic.

By the way, 2007 was a great year.

Member Avatar

11 Years Ago

thank u guys the same problem for me. I solved it today. it is useful for my practicals exam

Member Avatar

11 Years Ago

Go to c:tc and make sure there is a folder named «BGI» and that the drivers are in it.

my problem still is not gtn solved the program gets suck in the middle and on pressing alt+f5 it says bgi error

Member Avatar

11 Years Ago

Thank u guys….me too got d same error nd resolved it :)


wat did u do??

Member Avatar

11 Years Ago

YOW It REally helped !! thanks a lot !! Av4ash !!

Member Avatar

9 Years Ago

BGI Error:- Graphics not Initialized(Use Initgraph)

I have already used InitGraph and have given the path(C:TCBGI) in Initgraph and checked the Graphics option also..Its my windows7 & turbo c 3.. I just want to draw a circle by using graphics in c.But its showing while running undefined symbol _circle in module noname.cpp
Can any one please help me..Its urgent
Thanks in advance

Member Avatar

9 Years Ago

thanks a lot avi4ash man ur a life saver, i had my project submission tomm.thx.


Reply to this topic

Be a part of the DaniWeb community

We’re a friendly, industry-focused community of developers, IT pros, digital marketers,
and technology enthusiasts meeting, networking, learning, and sharing knowledge.

У меня есть программа на С++, которая использует graphic.h. Я хочу открыть ее с помощью dos-box, но когда я пытаюсь, я получаю эту ошибку от dos-box:

BGI Error: Graphics not initialized (use 'initgraph')   

Я использовал initgraph в своей программе следующим образом:

gd=DETECT;
initgraph(&gd,&gm,"");

2 ответы

Проверьте initgraph(), должно быть что-то вроде

initgraph(&gd,&gm,"C:TCBGI");

Если это не работает, попробуйте добавить дополнительную косую черту, например:

initgraph(&gd,&gm,"C:\TC\BGI");

Если снова это не работает, проверьте также переменные среды.

Вы можете сослаться на существующий пост в Ошибка BGI, как ее исправить?

ответ дан 23 мая ’17, 12:05

Создан 03 фев.

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

c++
dosbox
bgi

or задайте свой вопрос.

#1


Опубликовано 19 Апрель 2010 — 21:32

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

Очень надеюсь что кто-то сталкивался с подобной проблемой и смог ее решить.
Суть такая: У меня стоит OS Windows Vista. На ней стоит С++(Borland). Так как Vista не поддерживает полноэкранный режим консоли я установил эмулятор DOSBox. Все прекрасно работает кроме графической библиотеки, причем как в обычной консоли, так и в эмуляторе. Все графические функции просто пропускаются. Вместо этого пишет: «BGI Error: Graphics not initialized (use ‘initgraph’)»
Что нужно сделать чтоб заработало? Или просто надо установить другую OS? :(
P.S. Надеюсь ясно обрисовал проблему.

  • Наверх


#2


Generator


Опубликовано 19 Апрель 2010 — 21:43

Generator

  • Свои
  • 1 708 Сообщений:
  • Василий Яблоков

О, древняя проблема, и поднималась она неоднократно. Увы, в Виндах, начиная с Висты, не поддерживается полноэкранный режим ДОСовских приложений… А графика соответственно тоже не работает, так как требует этого самого полноэкранного режима. Прогать в Досбоксе — это вообще очень левая затея… Вывод — ставь XP либо просто так, либо на виртуальную машину поверх Висты

Изменено: Generator, 19 Апрель 2010 — 21:43

С уважением, самый большой в мире самолет по версии Google.
Надо быть осторожным со стремлением к минус бесконечности. (ЮА)

  • Наверх


#3


Дей-Лак


Опубликовано 19 Апрель 2010 — 21:49

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

Спасибо, попробую. Но лучше бы чтоб как-то в висте. Хотя надо было сразу линукс ставить.

Изменено: Дей-Лак, 19 Апрель 2010 — 21:50

  • Наверх


#4


Денис


Опубликовано 19 Апрель 2010 — 22:02

Денис

  • Genius loci
  • 6 869 Сообщений:
  • Денис Сумин

Ставь линукс и разбирайся с ним потихоньку :-)

  • Наверх


#5


Generator


Опубликовано 19 Апрель 2010 — 22:07

Generator

  • Свои
  • 1 708 Сообщений:
  • Василий Яблоков

<_< Человек помочь просил, а ты так сразу…

С уважением, самый большой в мире самолет по версии Google.
Надо быть осторожным со стремлением к минус бесконечности. (ЮА)

  • Наверх


#6


Дей-Лак


Опубликовано 19 Апрель 2010 — 22:22

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

Бред, я сейчас поставил хп и на нем то же самое :wacko:

  • Наверх


#7


koraalex


Опубликовано 19 Апрель 2010 — 23:39

koraalex

  • Свои
  • 1 891 Сообщений:
  • Алексей Коробов

А что, М.К. требует Borland? Не пора ли его отправить в историю? И разве нет ему альтернативы для Виндов? Это такой возглас дилетанта, потому что сам я с этим не работаю. Кстати, Денис, не ответишь ли мне в другой теме насчёт линукс-среды для C++?

  • Наверх


#8


hrulikus


Опубликовано 20 Апрель 2010 — 0:21

hrulikus

    Главный выпендрежник

  • Свои
  • 1 348 Сообщений:
  • Егор, Хрулёв

М.К. поступает как раз таки правильно.
Человеку надо для начала научиться работать с основами и современные среды разработки тут вообще ни к чему.Они лишь будут набивать голову восьмиклассника лишь всякой фигней.там же такая масса параметров, что начинающему вообще нереально разобраться.

А если по теме: точно не помню, но мне казалось в Сях надо графику инициализировать.
там как раз какая-то функция была initgraph с двумя-тремя параметрами. За вторую, кажется, мы ставили пустые кавычки.

Проблема решается добавлением этмх строчек в начале программы:

int gDriver=DETECT,gMode;
	initgraph(&gDriver,&gMode,getenv("BGI"));

«Каждая мечта тебе дается вместе с силами, необходимыми для ее осуществления.»
Р.Бах

  • Наверх


#9


koraalex


Опубликовано 20 Апрель 2010 — 0:33

koraalex

  • Свои
  • 1 891 Сообщений:
  • Алексей Коробов

Ну, я такого подхода не придерживаюсь, потому что есть несложные профессиональные среды, основанные на современных технологиях. Надо объяснить как пользоваться основными функциями и всё.

Изменено: koraalex, 20 Апрель 2010 — 12:52

  • Наверх


#10


KiberGus


Опубликовано 20 Апрель 2010 — 16:52

KiberGus

  • Genius loci
  • 6 557 Сообщений:
  • Алексей Гусейнов

Ну, я такого подхода не придерживаюсь, потому что есть несложные профессиональные среды, основанные на современных технологиях. Надо объяснить как пользоваться основными функциями и всё.

Им консоль нужна для начала, а в виндах это просто как-то не принято.

Зато, обладая единственной в мире подводной орбитальной группировкой спутников глонасс…
gentoo.gif

  • Наверх


#11


Дей-Лак


Опубликовано 20 Апрель 2010 — 18:58

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

Егор, про эти строчки я знаю (только gentenv вроде не обязательно,можно просто «BGI», но я попробовал все равно не работает)
Все, у меня не М.К. :( у меня Татьяна Леонидовна. На уроках мы в Borland’е, значит и дома в нем.
Может, если у кого-то стоит С++, скиньте мне ту самую папку BGI, может с ней что-то не так. Кстати не у меня одного в классе эта проблема.

  • Наверх


#12


Syrano


Опубликовано 20 Апрель 2010 — 19:02

Syrano

  • Свои
  • 9 591 Сообщений:
  • Владимир Зайцев

Егор, про эти строчки я знаю (только gentenv вроде не обязательно,можно просто «BGI», но я попробовал все равно не работает)
Все, у меня не М.К. :( у меня Татьяна Леонидовна. На уроках мы в Borland’е, значит и дома в нем.
Может, если у кого-то стоит С++, скиньте мне ту самую папку BGI, может с ней что-то не так. Кстати не у меня одного в классе эта проблема.

Это проблема системная. Мне кажется, правильнее всего спросить решения именно у преподавателя.

С нами сила Алхазашвили!

  • Наверх


#13


Дей-Лак


Опубликовано 20 Апрель 2010 — 19:11

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

Володя, я спрашивал у М.К., она сказала мне что то вроде: «Я не сисадмин, и я не знаю» :) Ну правда в 202’ю я не ходил.

  • Наверх


#14


гык-sse2


Опубликовано 20 Апрель 2010 — 19:15

гык-sse2

  • Свои
  • 377 Сообщений:
  • Михаил Беляев

Прогать в Досбоксе — это вообще очень левая затея…

Я прогаю под досбоксом (правда, уже в основном на асме). Под Mac OS X. А программу про маины (графическую) на VC++2K5(Windows Forms) перенес. (под VMWare)

Медведь громит каны!

  • Наверх


#15


Syrano


Опубликовано 20 Апрель 2010 — 19:15

Syrano

  • Свои
  • 9 591 Сообщений:
  • Владимир Зайцев

Володя, я спрашивал у М.К., она сказала мне что то вроде: «Я не сисадмин, и я не знаю» :) Ну правда в 202’ю я не ходил.

А Татьяна Леонидовна? В конце концов, если это массовая проблема, то надо сообща ее решать :-)

С нами сила Алхазашвили!

  • Наверх


#16


Дей-Лак


Опубликовано 20 Апрель 2010 — 19:42

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

А программу про маины (графическую) на VC++2K5(Windows Forms) перенес. (под VMWare)

Я из этого, честно говоря, ничего не понял:)

  • Наверх


#17


гык-sse2


Опубликовано 15 Май 2010 — 13:02

гык-sse2

  • Свои
  • 377 Сообщений:
  • Михаил Беляев

Не маины, а машины=)
VC++2005 — Visual C++ 2005 .NET, входит в состав Microsoft Visual Studio, установлена под Windows XP, а она — на виртуальной машине VMWAreVirtualBoxуже опять VMWare Fusion в Mac OS X

Изменено: гык-sse2, 20 Октябрь 2010 — 18:54

Медведь громит каны!

  • Наверх


#18


Дей-Лак


Опубликовано 30 Август 2010 — 0:26

Дей-Лак

  • Свои
  • 596 Сообщений:
  • Николай Яковлев

Если кому то интересно то проблема все же решилась. Причем и на XP и на Vista. Правда это все равно только для DosBox, но работает.
Вместо initgraph(&gd,&gm,»BGI») надо писать initgraph(&gd,&gm,»..//BGI»)
Зачем я не знаю. Так написано в папке examples :) Работает.

  • Наверх


#19


гык-sse2


Опубликовано 30 Август 2010 — 7:51

гык-sse2

  • Свои
  • 377 Сообщений:
  • Михаил Беляев

Если кому то интересно то проблема все же решилась. Причем и на XP и на Vista. Правда это все равно только для DosBox, но работает.
Вместо initgraph(&gd,&gm,»BGI») надо писать initgraph(&gd,&gm,»..//BGI»)
Зачем я не знаю. Так написано в папке examples :) Работает.

На XP-то зачем досбокс?
А initgraph(&gd,&gm,»») не работает?

Вообще, я уже переписал graphics.h на OpenGL (т.е. мы пишем все как в борланде, только инитграф другой — initgraph(int windowWidth, int windowHeight), т.к. мы сами задаем размер окна.
Начал переписывать клавиатурные ф-ции — написал bioskey (обрабатывает 1 и 0, 2 игнорирует), а вот дальше — какой-нибудь getch или gets уже не получается. На Windows Forms это было бы так:
[code=auto:0]
char getch()
{while(!bioskey(1)) Application::DoEvents();
return bioskey(0);
}
Что на GLUT вместо DoEvents написать? Иначе программа виснет — цикл не дает выполниться handleKeyPress(unsigned char, int, int)

Да, и пока это только под Mac OS X (шаблон программы). Для Windows нужно еще какие-то windows.h, hDC, pDC…

Изменено: iMichael, 30 Август 2010 — 7:53

Медведь громит каны!

  • Наверх


#20


KiberGus


Опубликовано 30 Август 2010 — 8:40

KiberGus

  • Genius loci
  • 6 557 Сообщений:
  • Алексей Гусейнов

На glut нет аналога DoEvents т.к. ты пишешь колбеки, а не основной цикл. Попробуй вместо glut использовать SDL, мне он намного больше понравился. Абсолютно одинаково инициализируется подо всеми платформами и главный цикл пишешь ты. А SDL предоставлет функции для проверок событий.

Зато, обладая единственной в мире подводной орбитальной группировкой спутников глонасс…
gentoo.gif

  • Наверх


Понравилась статья? Поделить с друзьями:
  • Dos read error 43110081
  • Dos error pascal
  • Dos error errno 1455
  • Dos error code 2
  • Dos error 4 dosbox