installuserdriver()
#include <graphics.h>
int far installuserdriver()
Параметры
Описание
Добавляет дополнительные драйверы устройств в таблицу драйверов устройств BGI
Ф. позволяет вам добавлять дополнительные драйверы во встроенную BGI таблицу. Параметр name - это имя (.BGI) файла нового драйвера, а параметр detect указатель на дополнительную функцию автоопределения, которая может сопровождать новый драйвер. Эта функция не берет никаких параметров и возвращает целое значение. Существует два способа использования драйверов, поставляемых продавцами. Предположим у вас есть новая видеокарта, называющаяся Spiffy Graphic Array (SGA) и производитель этой SGA обеспечивает вас также BGI-драйвером (SGA.BGI). Наипростейший способ использования драйвера состоит в добавлении его с помощью installuserdriver, а затем передаче возвращаемого значения (присвоенный номер драйвера) непосредственно в initgraph. Другой, более общий способ использования этого драйвера состоит во встраивании его в функцию автоопределения, которая вызывается initgraph как часть его драйвероопределяющей логики (вероятно, производитель SGA дал вам эту функцию автодетектирования). Когда вы добавите драйвер с помощью installuserdriver, вы передадите адрес этой функции вместе с именем файла драйвера устройства. После того как вы добавили имя файла драйвера и SGA-функцию автодетектирования, вы вызываете initgraph и позволяете ему выполнять нормальный процесс автодетектирования. Перед тем как initgraph вызовет встроенную функцию автодетектирования(detectgraph), он вызовет SGA-функцию автодетектирования. Если эта SGA-функция не находит аппаратные средства SGA, она возвращает значение -11 (grError), а initgraph продолжает нормальный процесс автодетектирования, который может включать вызов других поставленных производителем функций автодетектирования в том порядке в каком они были добавлены). Если же, однако, функция определит, что SGA присутствует, она возвращает неотрицательный номер режима; затем initgraph находит и загружает SGA.BGI, переводит аппаратные средства в графический режим, рекомендуемый функцией автодетектирования, и, наконец, передает управление вашей программе. Одновременно может быть добавлено до десяти драйверов. Значение возвращаемое installuserdriver это номер драйвера, который вы передадите в initgraph для того, чтобы выбрать вручную вновь добавленный драйвер. #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> int huge detectEGA(void); void checkerrors(void); int main(void) { int gdriver,gmode; gdriver = installuserdriver("EGA",detectEGA); /* инсталлировать драйвер, написанный пользователем*/ gdriver = DETECT; //инициировать автоопределение checkerrors(); //проверить на ошибки инсталляции initgraph(&gdriver,&gmode,""); //инициализация графики и локальных переменных checkerrors(); //проверить на ошибки иннициализации line(0,0,getmaxx(),getmaxy()); //нарисовать линию getch(); closegraph(); return 0; } /* определение платы EGA или VGA */ int huge detectEGA(void) { int driver, mode, sugmode = 0; detectgraph(&driver,&mode); if((driver == EGA) || (driver == VGA)) return sugmode; //вернуть предполагаемый номер режима else return grError; //вернуть код ошибки } /* проверка и сообщение о появлении ошибок */ void checkerrors(void) { int errorcode; errorcode = graphresult(); if(errorcode != grOk) { printf("Ошибка графики %s\n",grapherrormsg(errorcode)); printf("Для завершения нажмите любую клавишу... "); getch(); exit(1); } }
Смотрите также
installuserfont() — загружает файл со шрифтом
|
Нет комментариев. Оставить комментарий: |