- •Void writechar(char ch)
- •Void far getarccoords(struct arccoordstype
- •Int far getbkcolor(void);
- •Itoa(bkcolor,bkname,10);
- •Int getc(file *stream);
- •Int main(void)
- •Int getchar(void);
- •Int main(void)
- •Int getche(void);
- •Itoa(color,colname,10);
- •Int getcurdir(int drive, char * direc);
- •Int da_year; /* текущий год */
- •Int main(void)
- •Void getdfree(unsigned char drive,
- •Int getdisk(void);
- •Int main(void)
- •If(!flag)
- •Void getfatd(struct fatinfo *dtable);
- •Void far getfillpattern(char far *pattern);
- •Int getftime(int handle, struct ftime * ftimep);
- •Int far getgraphmode(void)
- •Initgraph.
- •Void far getimage(int left, int top, int
- •0X3333 или 0x0f0f. Если же параметр linestyle в
- •Int far getmaxcolor(void);
- •Int far getmaxx(void);
- •Int far getmaxy(void);
- •Void far getmoderange(int graphdriver, int
- •Void far getpalette(struct palettetype far
- •Int far getpalettesize(void);
- •Int main(void)
- •Int main(void)
- •3.X можно использовать глобальную переменную
- •Void gettextinfo(struct text_info *r);
- •Int main(void)
- •Void var gettexsettings(struct
- •Void gettime(struct time * timep);
- •Int main(void)
- •Int far getx(void);
- •Int far gety(void);
- •Void far graphdefaults(void);
- •Void far _graphfreemem(void var
- •Void far _graphgetmem(unsigned size);
- •0 GrOk нет ошибок
- •0, Если необходимо игнорировать ошибку, 1, если
- •Void hardresume(int rescode);
- •0, Если необходимо игнорировать ошибку, 1, если
- •0, Если необходимо игнорировать ошибку, 1, если
- •Int heapcheck(void);
- •Int heapchecknode(void *node);
- •Int heapfillfree(unsigned int fillvalue);
- •Int heapwalk(struct heapinfo *hi);
- •Void highvideo(void);
- •Int main(void)
- •Initgraph загружает графический драйвер и
- •Initgraph как часть его драйвероопределяю-
0 GrOk нет ошибок
-1 grNoInitGraph BGI-графика не установлена
(используйте initgraph)
-2 grNotDetect не обнаружены графические аппа-
ратные средства
-3 grFileNotFound файл драйвера не найден
-4 grInvalidDriver неисправный файл драйвера
-5 grNoLoadMem нет места в памяти для загрузки
драйвера
-6 grNoScanMem выход за память при сканирующем
заполнении
-7 grNoFloodMem выход за память при лавинном за-
полнении
-8 grFontNotFound файл со шрифтом не найден
-9 grNoFontMem нет места в памяти для загрузки
шрифта
-10 grInvalidMode неверный графический режим для
выбранного драйвера
-11 grError графическая ошибка
-12 grIOError графическая ошибка ввода/вывода
-13 grInvalidFont неверный шрифтовый файл
-14 grInvalidFontNum неверный номер шрифта
-15 grInvalidDeviceNum неверный номер устройства
-18 grInvalidVersion неверный номер версии
------------------------------------------------------------
Заметим, что переменные, полученные от graph-
result, переустанавливаются в 0 после завершения
вызова graphresult. Поэтому необходимо сохранять
значения, полученные от graph- result, во времен-
ных переменных и затем их использовать.
Возвращаемое graphresult возвращает текущий номер графи-
значение ческой ошибки - целое число от -15 до 0;
grapherrormsg возвращает указатель на строку,
связанную со значением, возвращаемым функцией
graphresult.
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ни-
ми, оснащенных дисплейными адаптерами, поддержи-
вающими графический режим.
Смотрите также detectgraph, drawpoly, fillpoly, floodfill,
grapherrormsg, initgraph, pieslice,
registerbgidriver, registerbgifont,
setallpalette, setcolor, setfillstyle,
setgraphmode, setlinestyle, setpalette,
settextjustify, settextstyle, setusercharsize,
-228-
setviewport, setvisualpage.
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* требуется автоопределение */
int graphdriver = DETECT, gmode, errorcode;
/* инициализация графики и локальных переменных */
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
line(o,o,getmaxx(),getmaxy());
/* очистка */
getch();
closegraph();
return 0;
}
harderr
Функция Устанавливает подпрограмму обработки ошибок
электронного оборудования.
Синтаксис #include<dos.h>
void harderr(*handler)());
Файл, содержащий dos.h
прототип
Описание Функция harderr устанавливает подпрограмму обра-
ботки сбоев электронного оборудования для текущей
программы. Данная подпрограмма вызывается к рабо-
те, как только возникнет прерывание 0x24. (см.
документ "Справочное руководство программиста для
DOS").
При появлении данного прерывыания происходит вы-
зов функции handler. Функция должна быть вызвана
со следующими аргументами:
handler(int errval, int ax, int bp, int si);
Переменная errval - код ошибки, устанавливаемый
DOS в регистре DI. ax, bp и si - значения, кото-
рые MS-DOS помещает соответственно в регистры
AX,BP,SI.
-229-
- параметр ax обозначает, произошла ли ошибка
диска или какого-либо другого устройства. Если ax
не отрицательно, произошла дисковая ошибка, в
противном случае, это ошибка другого устройства.
Для дисковой ошибки значение ax, сложенное логи-
чески (операцией AND) с 0x00FF, даст номер диско-
вода, в котором произошел сбой (1=A; 2=B; и
т.д.).
- bp и si вместе указывают на заголовок драйвера
устройства, в котором произошел сбой. bp содержит
адрес сегмента, а si смещение.
Названная выше функция не вызывается непосредст-
венно. Функция harderr устанавливает подпрограмму
обработки прерываний DOS, которая вызывает функ-
цию. Для получения информации из заголовка драй-
вера можно использовать функции peek и peekb.
Программа - обработчик прерываний может использо-
вать системные вызовы DOS от 1 до 0xC, все ос-
тальные вызовы портят DOS. В частности, не могут
быть использованы ни любые стандартные подпрог-
раммы ввода/вывода CИ, ни любые подпрограммы вво-
да/вывода эмуляции UNIX.
Программа обработки прерывания должна возвращать
