CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по функциям C/C++
_graphgetmem
_graphgetmem
Функция Пользователь захватывает графическую память. Синтаксис #include <graphics.h> void far _graphgetmem(unsigned size); Файл, содержащий graphics.h прототип Описание Графическая библиотека вызывает _graphgetmem (но не пользовательская программа) для выделения памяти для внутренних буферов, графических драйверов и шрифтов. Вы можете управлять распределением памяти графической библиотекой посредством простого определения вашей собственной версии _graphgetmem (вы должны определить ее так, как показано в описании). Начальная версия этой прграммы просто вызывает malloc. Возвращаемое Нет. значение Переносимость Функция уникальна для Borland C++. Она работает только на компьютерах IBM PC и совместимых с ними, оснащенных дисплейными адаптерами, поддерживающими графический режим. Функция не совместима с Windows. Смотрите также _graphfreemem, initgraph, setgraphbufsize. Пример: #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include<alloc.h> #define NONSENSE -50 int main(void) { /* Инициация ошибки */ int graphdriver = NONSENSE, gmode, errorcode; int midx,midy; /* обнуление текстового экрана */ clrscr(); printf("Для инициализации графики нажмите любую клавишу..."); getch(); clrscr(); /* инициализация графики и локальных переменных */ initgraph(&graphdriver,&gmode,""); /* получение результата инициализации */ errorcode = graphresult(); /* выдать соответствующее ошибке сообщение */ if(errorcode != grOk) /* если ошибка */ { printf("Ошибка :%s\n",grapherrormessage(errorcode)); printf("Для останова нажмите любую клавишу\n"); getch(); exit(1); /* завершение с кодом ошибки */ } midx = getmaxx()/2; midy = getmaxy()/2; /* вывести сообщение */ settextjustify(CENTER_TEXT,CENTER_TEXT); outtextxy(midx,midy,"Для выхода из графического режима нажмите любую клавишу "); /* очистка */ getch(); closegraph(); return 0; } /* вызывается ядром графической системы для выделения памяти */ void far *far _graphgetmem(unsigned size) { printf("Вызвана _graphgetmem для выделения %d байт\n",size); printf("Нажмите любую клавишу:"); getch(); printf("\n"); /* выделить память */ return farmalloc(size); } /* вызывается ядром графической системы для освобождения памяти */ void far _graphfreemem(void far *ptr, unsigned size) { printf("Вызвана _graphfreemem для освобождения %d байт\n",size); printf("Нажмите любую клавишу:"); getch(); printf("\n"); /* освободить память */ return farfree(ptr); }