Одной из первоочередных задач, которые решает программист в процессе создания собственных приложений, активно использующих возможности видеоадаптера, является определение типа видеоадаптера и типа дисплея, подключенных к компьютеру.
Наиболее простой способ решить эту проблемму в среде Microsoft Quick C заключается в использовании библиотечной функции _getvideoconfig(). Функция _getvideoconfig() заполняет структуру videoconfig, опреденную во включаемом файле graph.h следующим образом:
struct videoconfig { numxpixels // количество пикселов на оси x numypixels // количество пикселов на оси y numtextcols // количество символов в строке numtextrows // количество текстовых строк numcolors // количество используемых цветов bitsperpixel // количество бит видеопамяти на пиксел numvideopages // количество страниц видеопамяти mode // текущий режим работы видеоадаптера adapter // тип активного (первичного) видеоадаптера monitor // тип активного дисплея memory // объем видеопамяти в килобайтах }
Поле adapter определяет тип первичного видеоадаптера. Оно может принимать одно из следующих значений, определенных в файле graph.h:
Константа Название видеоадаптера
_MDPA MDA _CGA CGA _OCGA CGA фирмы Olivetti (AT&T) _EGA EGA _OEGA EGA фирмы Olivetti (AT&T) _VGA VGA _OVGA VGA фирмы Olivetti (AT&T) _MCGA MCGA (Multicolor Graphics Array) _HGC Hercules
Поле monitor определяет тип используемого в данный момент дисплея. Оно может принимать одно из следующих значений, определенных в файле graph.h:
Константа Тип дисплея
_MONO монохромный _COLOR цветной (или улучшенный цветной, эмулирующий цветной) _ENHCOLOR улучшенный цветной _ANALOGMONO монохромный аналоговый _ANALOGCOLOR цветной аналоговый _ANALOG аналоговый
Приведем программу, определяющую конфигурацию видеосистемы компьютера, а также режим ее работы, при помощи функции _getvideoconfig() из стандартной библиотеки трансляторов Microsoft Quick C 2.5, Quick C 2.01 и C 6.0:
#include <stdio.h> #include <graph.h>