Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизНехватка ресурсов под Win98. Найти похожие ветки
← →
Сергей Петров (2004-03-02 05:29) [0]Приведенный ниже вопрос я задал в "Основном". Привожу его для понимания проблемы. А вопрос здесь такой - поможет ли мне, если я перепишу это под WinAPI? Если да - приведите хотя бы названия функций, которые следует использовать. И если есть мысли о решении проблемы, выскажитесь, пожалуйста!
Уже неделю вожусь с этой проблемой. Я ее уже описывал, но если вкратце: после загрузки некоторого количества битмапов система либо виснет наглухо, либо программа вылетает, не оставляя после себя свободных ресурсов.
Ситуация становится непонятной. Судя по всему дело уже даже не в объеме памяти, требуемой под хранение bitmaps. Такое ощущение, что дело в количестве этих самых битмапов.
Их штук 20, все размером около килобайта-двух. Добавление-удаление к их списку большого битмапа размером 1.5мб роли не играет.
Есть несколько конкретных вопросов:
1. С точки зрения сокращения объемов используемой памяти имеет ли смысл использовать вместо TBitmap TJpegImage?
2. Если я создаю bitmap, а потом вызываю bitmap.free, могу ли я быть уверен, что все ресурсы, которые он использовал, освобождены?
3. Есть ли вообще хоть какие-то пути решения проблемы? Не знаю, DirectX какой-нибудь может мне помочь?
4. Есть ли какой-нибудь софт, который может помочь отследить на каком этапе съедаются ресурсы? Проблема в том, что стандартный виндовый ResourceWatcher показывает странное. В режиме пошагового выполнения до какого-то очередного loadfromfile все хорошо, свободных ресурсов около 60%, после ее выполнения - 1%. Мне кажется это странным, особенно учитывая то, что размер загружаемого bitmap - 1.5kb.
5. Самое главное - ответ "смирись, винда такая" не подходит. Ибо существует абсолютно аналогичное приложение, которое работает вполне уверенно.
← →
panov © (2004-03-02 16:02) [1]Не надо писать в несколько веток.
← →
panov © (2004-03-02 16:09) [2]А для освобождения GDI-ресурсов перед Bitmap.Free используй метод Bitmap.Dormant.
← →
YuRock © (2004-03-04 11:11) [3]Практически уверен, что ошибки в коде.
Что-то где-то неправильно удаляется (или вообще не удаляется).
Или что-то пишется не туда, куда нужно...
P.S. В 99.99% случаев в этом и заключаются все проблемы. В 0.01 поцента - приходится немного переделать алгоритм.
Приведите код (котя б кусочки) - попробуем помочь.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c