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

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


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

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



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

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;
 
 }

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

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




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



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


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