Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 10 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

registerbgidriver

 
 Функция            Регистрирует загруженный     пользователем     или
 
                    встроенный код графического драйвера в графической
 
                    системе.
 
 
 
 Синтаксис          #include <graphics.h>
 
                    int registerbgidriver(void (*driver)(void));
 
 
 
 Файл, содержащий   graphics.h
 
 прототип
 
 
 
 Описание           registerbgidriver позволяет пользователю загрузить
 
                    файл драйвера и "зарегистрировать" драйвер.  Когда
 
                    его   расположение   в   памяти   будет   сообщено
 
                    registerbgidriver,  initgraph сможет  использовать
 
                    зарегистрированный        драйвер.        Драйвер,
 
                    зарегистрированный   пользователем,   может   быть
 
                    загружен  с  диска  в динамическую область памяти,
 
                    либо   преобразован   в   .OBJ-файл   (с   помощью
 
                    BINOBJ.EXE) и подключен к .EXE .
 
 
 
                    Вызов registerbgidriver  информирует   графическую
 
                    систему  о том,  что драйвер driver был включен во
 
                    время   компоновки.   Эта   программа    проверяет
 
                    связанный  код  для указанного драйвера.  Если код
 
                    правильный,  то она регистрирует код во встроенной
 
                    таблице. Связанные драйверы описываются подробно в
 
                    файле UTIL.DOC.
 
 
 
                    Используя имя  встроенного   драйвера   в   вызове
 
                    registerbgidriver,   вы   просите   компилятор  (и
 
                    редактор связей (linker)) встроить объектный  файл
 
                    с общим именем.
 
 
 
 Возвращаемое       registerbgidriver возвращает отрицательный
 
 значение           код графической ошибки, если указанный драй-
 
                    вер или  шрифт  являются  неверными.  В  противном
 
                    случае    registerbgidriver    возвращает    номер
 
                    драйвера.
 
 
 
                    Если вы     регистрируете     драйвер    созданный
 
                    пользователем,  вы  обязаны   передать   результат
 
                    выполнения  registerbgidriver  в  initgraph в виде
 
                    номера драйвера, который будет использоваться.
 
 
 
 Переносимость      Эта функция   уникальна   для   Borland  C++.  Она
 
                    работает  только   на   компьютерах   IBM   PC   и
 
                    совместимых с   ними,    оснащенных    дисплейными
 
                    адаптерами,   поддерживающими  графический  режим.
 
                    Функция не совместима с Windows.
 
 
 
 Смотрите также     graphresult, initgrsph, installuserdriver,
 
                    registerbgifont.
 
 
 
 Пример:
 
 
 
 #include <graphics.h>
 
 #include <stdlib.h>
 
 #include <stdio.h>
 
 #include <conio.h>
 
 
 
 int main(void)
 
 {
 
 /* Запрос автоопределения */
 
 int graphdriver = DETECT, gmode, errorcode;
 
 
 
 /* зарегистрировать драйвер, добавленный в graphics.lib */
 
 errorcode = registerbgidriver(EGAVGA_driver);
 
 if(errorcode < 0)  /* если ошибка */
 
 {
 
    printf("Ошибка :%s\n",grapherrormessage(errorcode));
 
    printf("Для останова нажмите любую клавишу\n");
 
    getch();
 
    exit(1);  /* завершение с кодом ошибки */
 
 }
 
 
 
 /* инициализация графики и локальных переменных */
 
 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;
 
 }


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS