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

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


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

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



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

setlinestyle

 
 Функция            Устанавливает толщину и тип линии.
 
 
 
 Синтаксис          #include <graphics.h>
 
                    void far setlinestyle(int linestyle,
 
                               unsigned upattern, int thickness);
 
 
 
 Файл, содержащий   graphics.h
 
 прототип
 
 
 
 Описание           Устанавливает тип   для   всех   линий,   рисуемых
 
                    функциями line, lineto, rectangle, drawpoly и т.д.
 
 
 
                    Структура linesettingstype определена в graphics.h
 
                    следующим образом:
 
 
 
                        struct linesettingstype{
 
                           int linestyle;
 
                           unsigned upattern;
 
                           int thickness;
 
                        };
 
 
 
                    linestyle определяет   тип  линий,  который  будет
 
                    использоваться       (непрерывная,        пунктир,
 
                    штрихпунктир,       штриховая).      Перечисленные
 
                    line_styles,  определенные  в   graphics.h,   дают
 
                    названия этим операциям:
 
 
 
                    -------------------------------------------
 
                     Название      Знач.       Описание
 
                    -------------------------------------------
 
                    SOLID_LINE        0     сплошная
 
                    DOTTED_LINE       1     пунктир
 
                    CENTER_LINE       2     штрихпунктир
 
                    DASHED_LINE       3     штриховая
 
                    USERBIT_LINE      4     тип линии, заданный
 
                                            пользователем
 
                    -------------------------------------------
 
 
 
                    thickness определяет будут  ли  последующие  линии
 
                    тонкими или толстыми.
 
 
 
                    -------------------------------------------
 
                     Название      Знач.       Описание
 
                    -------------------------------------------
 
                    NORM_WIDTH        1     толшина в 1 пиксел
 
                    THICK_WIDTH       3     толщина в 3 пиксела
 
                    -------------------------------------------
 
 
 
                    upattern -   это   16-битный    шаблон,    который
 
                    используется    только   когда   linestyle   равен
 
                    USERBIT_LINE (4).  В этом  случае,  каждый  бит  в
 
                    шаблоне  установленный в 1,  соответствует пикселю
 
                    на линии в текущем цвете. Например, сплошной линии
 
                    соответстсвует  upattern  равный  0xFFFF (рисуются
 
                    все пикселы),  а пунктиру  соответствует  upattern
 
                    равный   0x3333   или  0x0F0F.  Если  же  параметр
 
                    linestyle в  setlynestyle  не  равен  USERBIT_LINE
 
                    (!=4),     то    upattern    поддерживается,    но
 
                    игнорируется.
 
 
 
                    Замечание. Параметр  linestyle  не  работает   при
 
                    построении  дуг,  кругов,  эллипсов и секторов.  В
 
                    этом случае используется пареметр thickness.
 
 
 
 Возвращаемое       Если в setlinestyle передается неправиль-
 
 значение           ный ввод, graphresult возвратит -11, а текущий тип
 
                    линии останется без изменений.
 
 
 
 Переносимость      Функция уникальна  для  Borland C++.  Она работает
 
                    только на компьютерах IBM PC и совместимых с ними,
 
                    оснащенных дисплейными адаптерами, поддерживающими
 
                    графический  режим.  Функция   не   совместима   с
 
                    Windows.
 
 
 
 Смотрите также     arc, bar3d, circle, drawpoly, ellipse,
 
                    getlinesettings, graphresult, line, linerel
 
                    lineto, pieslice, rectangle.
 
 
 
 Пример:
 
 
 
 #include <graphics.h>
 
 #include <stdlib.h>
 
 #include <stdio.h>
 
 #include <conio.h>
 
 
 
 /* имена поддерживаемых типов линий */
 
 char lname[] = {"SOLID_LINE",
 
                 "DOTTED_LINE",
 
                 "CENTER_LINE",
 
                 "DASHED_LINE",
 
                 "USERBIT_LINE"
 
                 };
 
 
 
 int main(void)
 
 {
 
 /* Запрос автоопределения */
 
 int graphdriver = DETECT, gmode, errorcode;
 
 int midx,midy,style,userpat;
 
 char stylestr[80];
 
 
 
 /* инициализация графики и локальных переменных */
 
 initgraph(&graphdriver,&gmode,"");
 
 
 
 /* получение результата инициализации */
 
 errorcode = graphresult();
 
 if(errorcode != grOk)  /* если ошибка */
 
 {
 
    printf("Ошибка :%s\n",grapherrormessage(errorcode));
 
    printf("Для останова нажмите любую клавишу\n");
 
    getch();
 
    exit(1);  /* завершение с кодом ошибки */
 
 }
 
 midx = getmaxx()/2;
 
 midy = getmaxy()/2;
 
 /* пользовательский шаблон: 1 (двоичный:0000000000000001) */
 
 userpat = 1;
 
 for(style = SOLID_STYLE; style <= USERBIT_STYLE; style++)
 
 {
 
    /* установить тип линии */
 
    setlinestyle(style,userpat,1)
 
    /* пребразовать в строку */
 
    strcpy(stylestr,lname[style]);
 
    /* нарисовать линию */
 
    line(0,0,midx-10,midy);
 
    /* нарисовать прямоугольник */
 
    rectangle(0,0,getmaxx(),getmaxy());
 
    /* вывести сообщение */
 
    outtextxy(midx,midy,stylestr);
 
    /* ожидать нажатия клавиши */
 
    getch();
 
    cleardevice();
 
 }
 
 /* очистка */
 
 closegraph();
 
 return 0;
 
 }


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

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




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



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


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