CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
detectgraph
detectgraph
Функция Определяет графический драйвер и графический режим при проверке аппаратуры. Синтаксис #include <graphics.h> void far detectgraph (int far*graphdriver, int far *graphmode); Файл, содержащий graphics.h прототип Описание detectgraph определяет ваш системный графический адаптер и выбирает режим, который обеспечивает самое высокое разрешение для этого адаптера. Если графический адаптер не обнаружен, *graphdriver устанавливается в -2 и graphresult будет также возвращать -2 (grNotDetected). *graphdriver - целое, которое определяет используемый графический драйвер. Вы можете задать его значение, используя константу перечисляемого типа graphics_drivers, определенную в graphics.h и приведенную в следующей таблице. Таблица 2.1. Константы функции detectgrapf. __________________________________________ graphics_drivers константа численное значение __________________________________________ DETECT 0 (запрашивает автоопределение драйвера) CGA 1 MCGA 2 EGA 3 EGA64 4 EGAMONO 5 IBM8514 6 HERCMONO 7 ATT400 8 VGA 9 PC3270 10 __________________________________________ *graphmode - целое, которое определяет начальный графический режим (если *graphdriver не равен DETECT, *graphmode устанавливается в наивысшее разрешение, допустимое для данного драйвера). Вы можете задать значение *graphmode, используя константу перечисляемого типа graphics_modes, определенную в graphics.h и показанную в следующей таблице: Таблица 2.2. Информация графических драйверов. ---------------------------------------------------------------- Графическ. graphics Знач. Колонок Палитра Страниц драйвер _modes * столбцов ---------------------------------------------------------------- CGA CGAC0 0 320 x 200 C0 1 CGAC1 1 320 x 200 C1 1 CGAC2 2 320 x 200 C2 1 CGAC3 3 320 x 200 C3 1 CGAHI 4 640 x 200 2цвета 1 MCGA MCGAC0 0 320 x 200 C0 1 MCGAC1 1 320 x 200 C1 1 MCGAC2 2 320 x 200 C2 1 MCGAC3 3 320 x 200 C3 1 MCGAMED 4 640 x 200 2цвета 1 MCGAHI 5 640 x 480 2цвета 1 EGA EGALO 0 640 x 200 16цветов 4 EGAHI 1 640 x 350 16цветов 2 EGA64 EGA64LO 0 640 x 200 16цветов 1 EGA64HI 1 640 x 350 4 цвета 1 EGA- EGAMONOHI 3 640 x 350 2 цвета 1* MONO EGAMONOHI 3 640 x 350 2 цвета 2** HERC HERCMONOHI 0 720 x 348 2 цвета 2 AT400 ATT400C0 0 320 x 200 C0 1 ATT400C1 1 320 x 200 C1 1 ATT400C2 2 320 x 200 C2 1 ATT400C3 3 320 x 200 C3 1 ATT400MED 4 640 x 200 2 цвета 1 ATT400HI 5 640 x 400 2 цвета 1 VGA VGALO 0 640 x 200 16 цветов 2 VGAMED 1 640 x 350 16 цветов 2 VGAHI 2 640 x 380 16 цветов 1 PC3270 PC3270HI 0 720 x 350 2 цвета 1 IBM8514 IBM8514HI 0 640 x 480 256 цветов IBM8514LO 0 1024 x 768 256 цветов * 64К на карте EGAMONO ** 256К на карте EGAMONO ---------------------------------------------------------------- Замечание. Основная причина вызова непосредственно detectgraph состоит в переопределении графического режима, который detectgraph рекомендовал initgraph. Возвращаемое Нет. значение Переносимость Функция уникальна для Borland C++. Эта функция пригодна только для компьютеров IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows. Смотрите также graphresult, initgraph. Пример: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> /* Имена различных графических адаптеров */ char *gname[] = { "требуется определение", "MCGA", "CGA", "EGA", "EGA с 64K", "монохромный EGA", "IBM 8514", "Hercules монохромный", "AT&T 6300 PC", "VGA", "IBM 3270" }; int main(void) { /* используется для определения графического адаптера */ int graphdriver, gmode, errorcode; /* определение адаптера */ detectgraph(&graphdriver,&gmode,""); /* получение результата инициализации */ errorcode = graphresult(); if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormessage(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } /* вывести полученную информацию */ clrscr(); printf("Установлена плата: %s",gname[graphdriver]); printf("Для завершения нажмите любую клавишу..."); getch(); return 0; }