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

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

Нехватка ресурсов под Win98. [D7, Win95/98]


Сергей Петров ©   (2004-03-02 05:29:00) 

Приведенный ниже вопрос я задал в "Основном". Привожу его для понимания проблемы. А вопрос здесь такой - поможет ли мне, если я перепишу это под WinAPI? Если да - приведите хотя бы названия функций, которые следует использовать. И если есть мысли о решении проблемы, выскажитесь, пожалуйста!

Уже неделю вожусь с этой проблемой. Я ее уже описывал, но если вкратце: после загрузки некоторого количества битмапов система либо виснет наглухо, либо программа вылетает, не оставляя после себя свободных ресурсов.

Ситуация становится непонятной. Судя по всему дело уже даже не в объеме памяти, требуемой под хранение bitmaps. Такое ощущение, что дело в количестве этих самых битмапов.

Их штук 20, все размером около килобайта-двух. Добавление-удаление к их списку большого битмапа размером 1.5мб роли не играет.

Есть несколько конкретных вопросов:

1. С точки зрения сокращения объемов используемой памяти имеет ли смысл использовать вместо TBitmap TJpegImage?

2. Если я создаю bitmap, а потом вызываю bitmap.free, могу ли я быть уверен, что все ресурсы, которые он использовал, освобождены?

3. Есть ли вообще хоть какие-то пути решения проблемы? Не знаю, DirectX какой-нибудь может мне помочь?

4. Есть ли какой-нибудь софт, который может помочь отследить на каком этапе съедаются ресурсы? Проблема в том, что стандартный виндовый ResourceWatcher показывает странное. В режиме пошагового выполнения до какого-то очередного loadfromfile все хорошо, свободных ресурсов около 60%, после ее выполнения - 1%. Мне кажется это странным, особенно учитывая то, что размер загружаемого bitmap - 1.5kb.

5. Самое главное - ответ "смирись, винда такая" не подходит. Ибо существует абсолютно аналогичное приложение, которое работает вполне уверенно.


YuRock   (2004-03-04 11:11:00) [1]

Практически уверен, что ошибки в коде.

Что-то где-то неправильно удаляется (или вообще не удаляется).
Или что-то пишется не туда, куда нужно...

P.S. В 99.99% случаев в этом и заключаются все проблемы. В 0.01 поцента - приходится немного переделать алгоритм.

Приведите код (котя б кусочки) - попробуем помочь.


panov   (2004-03-02 16:09:00) [2]

А для освобождения GDI-ресурсов перед Bitmap.Free используй метод Bitmap.Dormant.


panov   (2004-03-02 16:02:00) [3]

Не надо писать в несколько веток.


Наверх

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