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

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

почему возникает ошибка...


Dysan ©   (2004-08-02 17:48:00) 

почему возникает ошибка при Form.FormDestroy
а точнее в модуле XMLDOC
при FDocumentNode := nil; в процедуре

procedure TXMLDocument.ReleaseDoc(const CheckSave: Boolean = True);
begin
 if CheckSave then
   CheckAutoSave;
 FDocumentNode := nil; <---- ???
 FDOMPersist := nil;
 FDOMDocument := nil;
 FDOMParseOptions := nil;
 FPrefixID := 0;
 SetModified(False);
 if not (DocSource in [xdsNone, xdsXMLProperty]) then
   SetXMLStrings('');
end;

вылетает вот тут :

function _IntfClear(var Dest: IInterface): Pointer;
{$IFDEF PUREPASCAL}
var
 P: Pointer;
begin
 Result := @Dest;
 if Dest <> nil then
 begin
   P := Pointer(Dest);
   Pointer(Dest) := nil;
   IInterface(P)._Release;
 end;
end;
{$ELSE}
asm
       MOV     EDX,[EAX]
       TEST    EDX,EDX
       JE      @@1
       MOV     DWORD PTR [EAX],0
       PUSH    EAX
       PUSH    EDX
       MOV     EAX,[EDX]  <----!!!!
       CALL    DWORD PTR [EAX] + VMTOFFSET IInterface._Release
       POP     EAX
@@1:
end;
{$ENDIF}

И кричит что была совершена ошибка чтения по такому-то адреса.
как это исрпавить?


Dysan   (2004-08-02 18:25:00) [1]

сам я этого не делал.


Игорь Шевченко   (2004-08-02 18:12:00) [2]

Наверное потому, что интерфейс уже кто-то освободил, нет ?


Наверх

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