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

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


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

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



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

Как сформировать регион по картинке?

Автор: KAV
Исходная ссылка: - - -

Вроде бы можно так:
HRGN CreateRgnFromBitmap(Graphics::TBitmap *bmp, TPoint pPoint, bool bEqaul = true)
 
 {
 
 int f, x, y;
 
 bool b = false;
 
 HRGN Rgn, ResRgn = CreateRectRgn(0, 0, 0, 0);
 
 for (y = 0; y < bmp->Height; y++)
 
  for (x = 0; x < bmp->Width; x++)
 
  {
 
    if (!bEqaul^(bmp->Canvas->Pixels[x][y] != bmp->Canvas->Pixels[pPoint.x][pPoint.y]))
 
    {
 
      if (!b)
 
       {  f = x; b = true; }
 
      else
 
        if (x == (bmp->Width - 1))
 
        {
 
          Rgn = CreateRectRgn(f, y, x, y + 1);
 
          CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR);
 
          b = false;
 
        }
 
    }
 
    else
 
      if (b)
 
      {
 
        Rgn = CreateRectRgn(f, y, x, y + 1);
 
        CombineRgn(ResRgn, ResRgn, Rgn, RGN_OR);
 
        b = false;
 
      }
 
  }
 
 return ResRgn;
 
 }
 
 



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

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




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



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


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