Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

"Недостаточно памяти для завершения операции"   Найти похожие ветки 

 
alexey_potapov ©   (2006-11-17 17:28) [0]

Ошибка: "Недостаточно памяти для завершения операции".
При авто тестировании приложения (многочисленном открытии / закрытии окон)
наблюдается увеличение "объектов USER" (счетчик в таск менеджере).
На определенной итерации выдается ошибка (значение счетчика ~10000)
Недостаточно памяти для завершения операции
[40018CE9] Sysutils.RaiseLastOSError + $75
[00504214] Controls.TWinControl.CreateWnd + $130
...
(Т.е. получается что CreateWindowEx возратил 0)
известно что у windows есть ограничение на количество окон для процесса порядка 10000.
Но если я смотрю Ms Spy++, то количество окон в процессе гораздо меньше.
Использую delphi7, win2000 sp4. Утечек памяти (выделенной Memory Menager) нет.
Формы, на которых происходит утечка уничтожаются при закрытии
В связи с этим вопросы
1) Что входит в "объекты USER" - счетчике в таск менеджере помимо окон.
Возможно ли что это утечки не окон, а других win объектов?
2) Если предположить что это утечки окон, то как их обнаружить,
какой инструмент использовать? DestroyWindow уничтожает так же дочернии окна,
как в таком случае может происходить утечка?
Помогите ,пожалуйста, выработать методологию решения данной проблемы.


 
DVM ©   (2006-11-17 17:30) [1]

1) Это VCL окна?
2) Компоненты сторонние используются?
3) DestroyWindow() - зачем же так уничтожать окна?


 
clickmaker ©   (2006-11-17 17:34) [2]

значит, на какой-то CreateWindow нет своего DestroyWindow


 
alexey_potapov ©   (2006-11-17 17:35) [3]

1) Это обычные формы
2) Есть несколько собственных компонентов
3) DestroyWindow использует vcl


 
alexey_potapov ©   (2006-11-17 17:36) [4]

явно CreateWindow нигде не используется, все стандартные компоненты vcl + несколько производных


 
clickmaker ©   (2006-11-17 17:40) [5]

и что имеется в виду под "многочисленном открытии / закрытии окон"? В VCL закрытие формы далеко не тоже самое, что физическое уничтожение окна


 
alexey_potapov ©   (2006-11-17 17:58) [6]

я же написал "формы, на которых происходит утечка уничтожаются при закрытии" - то есть делается наподобе form.Free. В свою очередь все дочерние контролы должны уничтожится. Но какая-то утечка есть (возможно хандлов) есть. Но утечки самих объектов нет, так как это проверяется MemoryManager!


 
Rouse_ ©   (2006-11-17 22:19) [7]

Если Controls.TWinControl.CreateWnd , то значит не везде есть разрушение объектов. Если в твоем коде ты говоришь - нет утечьки, ищи ее в сторонних компонентах, которые используешь...



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.032 c
2-1166981875
sinus
2006-12-24 20:37
2007.01.14
Вписать форму в другую форму


15-1166803567
Лёля
2006-12-22 19:06
2007.01.14
Delphi 6 и CodeFolding


3-1161777355
просто_человек
2006-10-25 15:55
2007.01.14
Stack overflow


15-1167048398
Handle
2006-12-25 15:06
2007.01.14
Идея пришла ко мне


2-1166604806
регинка
2006-12-20 11:53
2007.01.14
помогите!!!!!!!!!