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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


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

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



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

setallpalette

 
 Функция            Изменяет всю палитру красок.
 
 
 
 Синтаксис          #include <graphics.h>
 
                    void far setallpalette(struct palettetype
 
                    far *palette);
 
 
 
 Файл, содержащий   graphics.h
 
 прототип
 
 
 
 Описание           setallpalette устанавлмвает   текущую   политру  в
 
                    значения,  заданные в  структуре  palettetype,  на
 
                    которую  указывает  параметр  palette.
 
 
 
                    Вы можете  частично (или полностью) изменить цвета
 
                    политры EGA/VGA c помощью функции setallpalette.
 
 
 
                    Константа MAXCOLORS    и   структура   palettetype
 
                    используемые   в   setallpalette,   определены   в
 
                    graphics.h следующим образом:
 
 
 
                       #define MAXCOLORS 15
 
 
 
                       struct palettetype{
 
                          unsigned char size;
 
                          signed char colors[MAXCOLORS+1];
 
                       };
 
 
 
                    size - содержит количество цветов  в  палитре  для
 
                    текущего графического драйвера в текущем режиме.
 
 
 
                    colors -  массив  из  size  байт,  содержащий  ряд
 
                    номеров цветов для каждого элемента палитры.  Если
 
                    элемент в массиве colors равен -1, то цвет палитры
 
                    для этого элемента не изменяется.
 
 
 
                    Элементы массива    colors,     используемые     в
 
                    setallpalette,  могут  быть  представлены  в  виде
 
                    символических констант, определенных в graphics.h
 
 
 
           Таблица 2.6. Таблица цветов.
 
           -----------------------------------------------------
 
                     Таблица доступных цветов
 
           -----------------------------------------------------
 
                  CGA                         EGA/VGA
 
           Имя               Знач      Имя               Знач.
 
           -----------------------------------------------------
 
           BLACK                0    EGA_BLACK              0
 
           BLUE                 1    EGA_BLUE               1
 
           GREEN                2    EGA_GREEN              2
 
           CYAN                 3    EGA_CYAN               3
 
           RED                  4    EGA_RED                4
 
           MAGENTA              5    EGA_MAGENTA            5
 
           BROWN                6    EGA_LIGHTGRAY          7
 
           LIGHTGRAY            7    EGA_BROWN             20
 
           DARKGRAY             8    EGA_DARKGRAY          56
 
           LIGHTBLUE            9    EGA_LIGHTBLUE         57
 
           LIGHTGREEN          10    EGA_LIGHTGREEN        58
 
           LIGHTCYAN           11    EGA_LIGHTCYAN         59
 
           LIGHTRED            12    EGA_LIGHTRED          60
 
           LIGHTMAGENTA        13    EGA_LIGHTMAGENTA      61
 
           YELLOW              14    EGA_YELLOW            62
 
           WHITE               15    EGA_WHITE             63
 
           -----------------------------------------------------
 
 
 
                    Заметим, что цвета зависят от текущих графического
 
                    драйвера и графического режима.
 
 
 
                    Изменения, произведенные в палитре, сразу же могут
 
                    быть  увидены  на  экране.  При  изменении цвета в
 
                    палитре,  все на экране,  окрашенное в этот  цвет,
 
                    станет окрашенным в новый цвет.
 
 
 
                    Замечание. setallpalette не может использоваться с
 
                    драйвером IBM-8514.
 
 
 
 Возвращаемое       Если в setallpalette передается ошибочное
 
 значение           значение, graphresult возвратит -11(grError) а
 
                    текущая палитра останется без изменений.
 
 
 
 Переносимость      Функция уникальна  для  Borland C++.  Она работает
 
                    только на компьютерах IBM PC и совместимых с ними,
 
                    оснащенных дисплейными адаптерами, поддерживающими
 
                    графический  режим.  Функция   не   совместима   с
 
                    Windows.
 
 
 
 Смотрите также     getpalette, getpalettesize, graphresult,
 
                    setbkcolor, setcolor, setpalette.
 
 
 
 Пример:
 
 
 
 #include <graphics.h>
 
 #include <stdlib.h>
 
 #include <stdio.h>
 
 #include <conio.h>
 
 
 
 int main(void)
 
 {
 
 /* Запрос автоопределения */
 
 int graphdriver = DETECT, gmode, errorcode;
 
 struct palettetype pal;
 
 int color,maxcolor,ht;
 
 int y=10;
 
 char msg[80];
 
 
 
 /* инициализация графики и локальных переменных */
 
 initgraph(&graphdriver,&gmode,"");
 
 
 
 /* получение результата инициализации */
 
 errorcode = graphresult();
 
 if(errorcode != grOk)  /* если ошибка */
 
 {
 
    printf("Ошибка :%s\n",grapherrormessage(errorcode));
 
    printf("Для останова нажмите любую клавишу\n");
 
    getch();
 
    exit(1);  /* завершение с кодом ошибки */
 
 }
 
 maxcolor = getmaxcolor();
 
 ht = 2*textheight("W");
 
 /* получить копию палитры */
 
 getpalette(&pal);
 
 /* вывести значения цветов палитры */
 
 for(color = 1; color <= maxcolor; color++)
 
 {
 
    setcolor(color);
 
    sprintf(msg,"Color %d",color);
 
    outtextxy(1,y,msg);
 
    y += ht;
 
 }
 
 /* ожидать нажатия клавиши */
 
 getch();
 
 /* присвоить всем у[цветам значение черного */
 
 for(color = 1; color <= maxcolor; color++)
 
 {
 
    setpalette(color,BLACK);
 
    getch();
 
 }
 
 /* восстановить цвета палитры */
 
 setallpalette(&pal);
 
 /* очистка */
 
 getch();
 
 closegraph();
 
 return 0;
 
 }


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

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




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



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


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