
- •Void writechar(char ch)
- •Void far getarccoords(struct arccoordstype
- •Int far getbkcolor(void);
- •Itoa(bkcolor,bkname,10);
- •Int getc(file *stream);
- •Int main(void)
- •Int getchar(void);
- •Int main(void)
- •Int getche(void);
- •Itoa(color,colname,10);
- •Int getcurdir(int drive, char * direc);
- •Int da_year; /* текущий год */
- •Int main(void)
- •Void getdfree(unsigned char drive,
- •Int getdisk(void);
- •Int main(void)
- •If(!flag)
- •Void getfatd(struct fatinfo *dtable);
- •Void far getfillpattern(char far *pattern);
- •Int getftime(int handle, struct ftime * ftimep);
- •Int far getgraphmode(void)
- •Initgraph.
- •Void far getimage(int left, int top, int
- •0X3333 или 0x0f0f. Если же параметр linestyle в
- •Int far getmaxcolor(void);
- •Int far getmaxx(void);
- •Int far getmaxy(void);
- •Void far getmoderange(int graphdriver, int
- •Void far getpalette(struct palettetype far
- •Int far getpalettesize(void);
- •Int main(void)
- •Int main(void)
- •3.X можно использовать глобальную переменную
- •Void gettextinfo(struct text_info *r);
- •Int main(void)
- •Void var gettexsettings(struct
- •Void gettime(struct time * timep);
- •Int main(void)
- •Int far getx(void);
- •Int far gety(void);
- •Void far graphdefaults(void);
- •Void far _graphfreemem(void var
- •Void far _graphgetmem(unsigned size);
- •0 GrOk нет ошибок
- •0, Если необходимо игнорировать ошибку, 1, если
- •Void hardresume(int rescode);
- •0, Если необходимо игнорировать ошибку, 1, если
- •0, Если необходимо игнорировать ошибку, 1, если
- •Int heapcheck(void);
- •Int heapchecknode(void *node);
- •Int heapfillfree(unsigned int fillvalue);
- •Int heapwalk(struct heapinfo *hi);
- •Void highvideo(void);
- •Int main(void)
- •Initgraph загружает графический драйвер и
- •Initgraph как часть его драйвероопределяю-
Initgraph загружает графический драйвер и
переводит систему в графический режим.
Вы можете указать графической системе ис-
пользовать конкретный графический драйвер и
режим, или, чтобы она сама определила в процессе
работы привязанный к данной системе видеоадаптер
и выбратла соответствующий драйвер. Если вы указа-
ли initgraph автоопределение она вызывает
detectgraph для выбора графического драйвера и
режима. initgraph также переустанавливает все
графические параметры в их значения по умолча-
нию (текущая позиция, палитра, цвет, окно экрана,
и т. д.) и переустанавливает grapgresult в 0.
Обычно initgraph загружает графический драйвер
путем выделения памяти для драйвера (с помощью
функции _graphgetmem), затем загружает соответст-
вующий файл .BGI с диска. В противоположность этой
схеме динамической загрузки , вы можете присоеди-
нить файл графического драйвера (или несколько та-
ких файлов) непосредственно выполняемым файлом.
Смотрите более подробную информацию в BGIOBJ.
pathodriver определяeт маршрут по которому
initgraph будет искать графические драйверы.
initgraph сначала ищет по маршруту, определяемому
в pathtodriver, затем ( если их там нет) ищет в
текущей директории. Следовательно, если
pathtodriver равен NULL, файлы драйвера (*.BGI)
должны быть в текущей директории. Таким же путем
settexstyle будет искать файлы (.CHR), содержащие
шрифты.
*graphdriver - целое, которое определяет исполь-
зуемый графический драйвер. Вы можете задать его
значение, используя константу graphics_driver пе-
речисляемого типа, определенного в graphics.h и
показанного в следующей таблице.
________________________________________
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 устанавливается в наивысшее
разрешение, допустимое для данного драйвера). Вы
-246-
можете задать значение *graphmode, используя конс-
танту перечисляемого типа graphics_modes, опреде-
ленную в graphics.h и показанную в следующей таб-
лице:
---------------------------------------------------------------
Графическ. 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.
В приведенной таблице, элементы столбца "Палитра"
C0, C1, C2 и C3 относятся к четырем ранее опреде-
-247-
ленным четырехцветным палитрам, действительным для
CGA и совместимых систем. Вы можете выбрать цвет
фона( элемент #0 ), но остальные цвета не меняют-
ся. Эти палитры подробно описаны в главе 5 "Ви-
део-функции" в "Руководстве пользователя по Turbo
C " и суммированы в следующей таблице:
-----------------------------------------------------------
Номер Константа присвоенная значению пиксела
палитры 1 2 3
-----------------------------------------------------------
0 CGA_LIGHTGREEN CGA_LIGHTRED CGA_YELLOW
1 CGA_LIGHTCYAN CGA_LIGHTMAGENTA CGA_WHITE
2 CGA_GREEN CGA_RED CGA_BROWN
3 CGA_CYAN CGA_MAGENTA CGA_LIGHTGRAY
------------------------------------------------------------
После обращения к initgraph *graphdriver устанав-
ливается в текущий графический драйвер, а
*graphmode в текущий графический режим.
Возвращаемое initgraph всегда устанавливает внутренний
значение код ошибки. В случае успешного выполнения
код равен 0. В случае же ошибки
*graphdriver устанавливается в -2, -3, -4
или -5, и graphresult возвращает соответс-
твующие значения, перечисленные ниже:
-2 не может определить тип графической
карты (grNotDetected)
-3 не может найти файл драйвера
(grFileNotFound)
-4 неправильный драйвер (grInvalidDriver)
-5 недостаточно памяти для загрузки
драйвера (grNoLoadMem)
Переносимость Функция уникальна для Turbo C++. Она работает
только на компьютерах IBM PC и совместимых с ними,
оснащенных дисплейными адаптерами, поддерживающими
графический режим.
Смотри также closegraph, detectgraph, getdefaultpalette,
getdrivername, getgraphmode, getmoderange,
graphdefault, _graphgetmem, graphresult,
installuserdriver, registerbgidriver,
registerbgifont, restorecrtmode,
setgraphbufsize, setgraphmode
Пример:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* требуется автоопределение */
int graphdriver = DETECT, gmode, errorcode;
/* мнмцмализация графического режима */
-248-
initgraph(&graphdriver,&gmode,"");
/* получение результата инициализации */
errorcode = graphresult();
if(errorcode != grOk) /* если ошибка */
{
printf("Ошибка :%s\n",grapherrormessage(errorcode));
printf("Для останова нажмите любую клавишу\n");
getch();
exit(1); /* завершение с кодом ошибки */
}
line(0,0,getmaxx(),getmaxy());
getch();
closegraph();
return 0;
}
inport
Функция Считывает слово из порта.
Синтаксис #include <dos.h>
int inport(int portid);
Файл, содержащий dos.h
прототип
Описание inport работае аналогично команде процессорора
80x86 IN. Она считывает младший бай слова из вход-
ного порта, заданного параметром portid, а старший
байт из порта portid+2.
Возвращаемое Функции inport возвращают прочитанное значение.
значение
Переносимость Функция уникальна для микропроцессоров семейства
8086.
Смотри также inportb, outport, outportb.
Пример:
#include<stdio.h>
#include<dos.h>
int main(void)
{
int result;
int port = 0; /* последовательный порт 0 */
result = inport(port);
printf("Слово, считанное из порта %d = 0x%X\n",port,result);
return 0;
}
inportb
Функция Считывает байт из порта.
Синтаксис #include <dos.h>
int inport(int port);
-249-
Файл, содержащий dos.h
прототип
Описание inportb - это макрокоманда, которая считывает байт
из порта, определяемого параметром port. Если вы
подключили файл dos.h, то inportb рассматривается
как макрокоманда, которая расширяется до встроен-
ного кода. Если вы не включите dos.h, или отмените
определение макрокоманды с помощью инструкции
#undef, то получите функцию.
Возвращаемое inportb возвращает прочитанное значение.
значение
Переносимость Функция уникальна для микропроцессоров семейства
8086.
Смотри также inport, outport, outportb.
Пример:
#include<stdio.h>
#include<dos.h>
int main(void)
{
unsigned char result;
int port = 0; /* последовательный порт 0 */
result = inportb(port);
printf("Байт, считанный из порта %d = 0x%X\n",port,result);
return 0;
}
insline
Функция Вставляет пустую строку в текстовом окне.
Синтаксис #include<conio.h>
void insline(void);
Файл, содержащий conio.h
прототип
Описание insline вставляет в текущем текстовом окне пустую
строку, пользуясь текущей позицией курсора и цве-
том фона. Все строки лежащие ниже данной прокру-
чиваются вниз. Самая нижняя строка исчезает.
insline используется в текстовом режиме.
Возвращаемое Нет.
значение
Переносимость insline работает только на компьютерах совместимых
с IBM PC, соответствующая функция есть в Turbo Pas-
cal.
Смотри также clreol, delline, window
Пример:
-250-
#include<conio.h>
int main(void)
{
clrscr();
cprintf("Функция INSLINE вставляет строку, по текущему по-\r\n");
cprintf("ложению курсора, использую текущий цвет фона.\r\n");
cprintf("Все строки ниже ее, сдвигаются вниз. \r\n");
cprintf("INSLINE работает в текущем активном \r\n");
cprintf("текстовом окне. Для продолжения нажмите клавишу...");
gotoxy(1,3);
getch();
insline();
getch();
return 0;
}
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.
Другой, более общий способ использования
этого драйвера состоит во встраивании его в
функцию автоопределения, которая вызывается