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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


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

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



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

Функция Пользователь захватывает графическую память.

 
 
 
 Синтаксис          #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);
 
 }
 
 


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

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




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



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


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