Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
36
Добавлен:
02.05.2014
Размер:
765.95 Кб
Скачать

Installuserdriver

-----------------------------------------------------------------

Назначение:Установка нового драйвера устройства.

Синтаксис: #include<graphics.h>

int far installuserdriver( char far *name,

int huge (*detect)(void));

Замечания: installuserdriver позволяет вам добавить новый

драйвер устройства во внутреннюю таблицу BGI.

Параметр nameопределяет имя файла (.BGI), со-

держащего новый драйвер, а параметр detectука-

зывает на необязательную функцию автоопределе-

ния драйвера (функция автоопределения не имеет

параметров и возвращает целое число).

Если вам необходимо использовать новую видео

форму SGA, и организация-разработчик снабдила

вас соответствующим драйвером BGI(SGA.BGI), то

простейший способ использования нового драйвера

- это установить его в таблицу с помощью

installuserdriverи затем передать возвращенное

данной функцией значение (назначенный номер

драйвера) непосредственно функции инициализации

графического режима (initgraph).

Другой более общий способ установки нового

драйвера состоит в соединении функции автоопре-

деления, вызываемой initgraph,cфункцией конт-

роля наличия SGA(поставщикSGAдолжен вас

снабдить данной функцией автоопределения). Ког-

да вы устанавливаете драйвер (через вызов

installuserdriver), вам необходимо передать в

качестве параметров адрес данной функции и имя

файла драйвера устройства. После того, как вы

инсталлировали необходимые файл драйвера и

функцию автоопределения, вам достаточно вызвать

initgraphcобычным процессом автоопределения.

Прежде чем initgraphвызовет функцию автоопре-

деления (detectgraph), осуществляется вызов

функции определения SGA. Если функция определе-

ния SGAне найдет соответствующегоSGAустройс-

тва, она вернет значение -11 (grError) и

initgraphпродолжится в общем режиме определе-

ния устройств (который может содержать вызовы

других новых функций автоопределения в том по-

рядке, в котором они были инсталлированы вызо-

вами функции installuserdriver). Если, однако,

функция автоопределения обнаружит SGA, то она

вернет значение номера режима и initgraphзаг-

рузит SGA.BGIи установит устройство в соот-

ветствующий режим рекомендованный функцией ав-

тоопределения, затем вернет управление в вашу

программу.

Одновременно может быть установленно до десяти

драйверов.

Возвращаемоеinstalluserdriverвозвращает номер драйвера,

значениеданное значение используется в качестве пара-

метра функции initgraph.

Переносимость:Данная функция работает только наIBMPCи сов-

местимых моделях при наличии соответствующих

графических адаптеров.

Смотри также: initgraph, registerbgidriver

Пример

#include<stdio.h>

#include<stdlib.h>

#include<graphics.h>

int Driver, Mode;

int huge detectSGA(void)

{

intfound,defaultmode;

/* Определение устройства ....

found = .....

*/

if (!found) return(grError);

/* Определение текущего графического режима....

defoultmode= .......*/

return(defoultmode);

}

main()

{

Driver = installuserdriver("SGA", detectSGA);

if ( gr0k != graphresult() )

{ /* Переполнение таблицы */

printf( "Ошибка инсталлирования"

" драйвера SGA.\n");

exit(1);

}

Driver = DETECT; /* автоопределение */

initgraph( &Driver, &Mode, "");

if ( gr0k != graphresult() ) exit(1);

outtext( " Драйвер установлен");

getchar();

closegraph();

}

-----------------------------------------------------------------