Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TCLR-3Ar.doc
Скачиваний:
54
Добавлен:
12.07.2019
Размер:
665 Кб
Скачать
☆

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.

Программа обработки прерывания должна возвращать

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]