Вниз
Скачать: CL | DM;

Программа вызывает ошибку Explorer-а   Найти похожие ветки 

← →
Ал   (2003-10-16 11:02) [0]

Знатоки!
Вопрос, к сожалению, носит очень общий характер.
Есть две кооперативные программы:
первая - небольшой планировщик, по заданному расписанию выполняющий несложные действия;
вторая - целевая программа, отображающая определенную информацию на экране, предоставляющая пользовательский интерфейс для себя и заодно - для планировщика.
Приводить код - неоправдано - его достаточно много.
В результате их работы иногда, без видимой системы возникает ошибка Explorera Win95, 98 (в XP - не наблюдал) и он закрывает некоторые окна (обычно окна просмотра папок), а также слетают некоторые программы из системного лотка, но не все).
Планировщик и целевая программа проверены memproof.
Есть небольшие утечки в функциях работы с массивами - из system.pas (сам не смог исправить), ошибка загрузки Icon в KOL (хотя она грузится) - в общем ничего глобального и грубого - как мне кажется. Память, потребляемая ими, динамически не разрастается - вроде все аккуратно.
Целевая программа работает с изображениями и интерфейсом IActiveDesktop.

Возможно, съедается память (обычно одновременно работаю с Delphi и др.), возможно, еще что-то.

Обращаюсь к вашему опыту, знатоки.
Какие причины могут вызывать ошибку Explorer-а с закрытием части окон?
И что можно порекомендовать в качестве профилактики?


← →
Ал   (2003-10-17 09:21) [1]

memproof дает сообщение об утечках при AllocMem в процедуре System.DynArraySetLength (у меня используется SetLength динамических массивов). Думаю, это происходит в куске

// If the heap object isn"t shared (ref count = 1), just resize it. Otherwise, we make a copy
if (p = nil) or (PLongint(p)^ = 1) then
begin
pp := p;
if (newLength < oldLength) and (typeInfo <> nil) then
FinalizeArray(PChar(p) + Sizeof(Longint)*2 + newLength*elSize, typeInfo, oldLength - newLength);
ReallocMem(pp, neededSize);
p := pp; <------ Думаю, после этого нужно освободить PP?
end

Пробовал переопределить эту функцию у себя в проекте - не находит FinalizeArray. Никто не в курсе, как можно справиться с этими утечками?



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.016 c
14-89525
zzet
2003-10-09 12:03
2003.10.27
iKobo


14-89467
Е-Моё имя
2003-10-07 10:17
2003.10.27
сказ про то, как модератор был предан анафеме


14-89473
Layner
2003-10-07 10:25
2003.10.27
E book compiler полная лажа (html>exe)


1-89354
TUser
2003-10-16 09:26
2003.10.27
ToolWindow


3-89184
bober
2003-10-06 13:08
2003.10.27
Создание DBF с помощью SQL




   Наверх