Форум: "Игры";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
Внизубийство спрайтов Найти похожие ветки
← →
KiberKot © (2006-03-27 16:03) [0]При закрытии приложения возникает ошибка
Access violation at address 04059a4 in module "Progect1.exe". Read of address 00000008
Ошибка возникает при очистке спрайтов
в этом коде:
if Assigned(FDD) then begin
if Assigned(FDDPal) then FDDPal := nil;
for i := 0 to NumSprites - 1 do begin
if Assigned(spr [i].FSpriteSurface) then begin
spr [i].FSpriteSurface._Release ;
spr [i].FSpriteSurface := nil;
end;
spr [i]:=nil;
end;
При удалении Release возникает еще одна ошибка
← →
XProger © (2006-03-27 17:02) [1]В Delphi интерфейсы сами себя уничтожают при необходимости :) Так что, _Release вызывать не надо.
Ошибка возможно не здесь, а при отрисовке или других операциях, в которых не проверяется возможность spr[i] = nil. AV вылетает где угодно и когда угодно, что делает её поиск задачей не из лёгких...
← →
Darthman © (2006-03-27 18:00) [2]spr [i].FSpriteSurface._Release ;
spr [i].FSpriteSurface := nil;
Одно из этих действий лишнее. А именно _Release.
← →
OSokin © (2006-03-31 18:25) [3]Наверное просто спрайты уничтожаются, а ссылки на них остаются. Проверь.
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.059 c