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() — загружает файл со шрифтом
|