Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

installuserdriver

installuserdriver


Функция            Добавляет дополнительные   драйверы   устройств  в
                   таблицу драйверов устройств BGI.

Синтаксис          #include <graphics.h>
                   int far installuserdriver(char far *name,
                                     int huge(*detect)(void));

Файл, содержащий   graphics.h
прототип

Описание           installuserdriver позволяет      вам     добавлять
                   дополнительные драйверы во встроенную 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
                   для того,  чтобы выбрать вручную вновь добавленный
                   драйвер.

Переносимость      Функция уникальна для  Borland  C++.  Эта  функция
                   пригодна   только   для   компьютеров   IBM  PC  и
                   совместимых с    ними,    оснащенных   дисплейными
                   адаптерами,  поддерживающими  графический   режим.
                   Функция не совместима с Windows.

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

Пример:

#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);
   }
}

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог