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

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), вам необходимо передать в

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

программу.

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

драйверов.

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

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

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

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

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

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

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

Пример

#include<stdio.h>

#include<stdlib.h>

#include<graphics.h>

int Driver, Mode;

int huge detectSGA(void)

{

int found, 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();

}

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