Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Внизпочему возникает ошибка... Найти похожие ветки
← →
Dysan © (2004-08-02 17:48) [0]почему возникает ошибка при 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}
И кричит что была совершена ошибка чтения по такому-то адреса.
как это исрпавить?
← →
Игорь Шевченко © (2004-08-02 18:12) [1]Наверное потому, что интерфейс уже кто-то освободил, нет ?
← →
Dysan © (2004-08-02 18:25) [2]сам я этого не делал.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.039 c