Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Утечка памяти [D7, Win95/98, WinXP]


Proger ©   (2004-10-27 19:22:00) 

Вот игру делаю, c API только начинаю работать.Каждую
секунду потребление оперативки игрой растёт на 64 - 128 Кб(зависит от кол-ва созданных движком Bitmap'ов).
 Если отключить блиттинг главного буфера в окно, тогда нормально
всё(???)
 Вот кусок кода обновления кадра:
begin
 ...
 PatBlt(GetDc(hWnd), 0, 0, W, H, BLACKNESS)
 ...
 BitBlt(GetDc(hWnd), ... , Buf.canvas.handle, ... , SRCCOPY);
 BitBlt(GetDc(hWnd), ... , ExBuf.canvas.handle, ..., SRCCOPY);
end;
 Формат пиксела Buf = pfDevice, ExBuf = pf24bit;
 Выручайте мастера!!Заранее всем спасибо.


марсианин   (2004-10-28 18:15:00) [1]

извини, в последнее время много на с++ приходится
первая строчка

var dc:HDC;
...
dc := GetDC(hWnd);


марсианин   (2004-10-28 18:13:00) [2]



HDC dc = GetDC(hWnd);
PatBlt(dc, 0, 0, W, H, BLACKNESS)
...
BitBlt(dc, ... , Buf.canvas.handle, ... , SRCCOPY);
BitBlt(dc, ... , ExBuf.canvas.handle, ..., SRCCOPY);
...

ReleaseDC(hWnd, dc);


Proger   (2004-10-28 17:14:00) [3]

2 clickmaker ©.По подробней если можно...
2 tesseract.А есть другой способ?


tesseract   (2004-10-28 09:38:00) [4]

Да и зачем каждый раз GetDC? выделение памяти - задача тормозная.. очень тормозная...


clickmaker   (2004-10-27 20:34:00) [5]


> PatBlt(GetDc(hWnd), 0, 0, W, H, BLACKNESS)

а ReleaseDC кто делать будет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо