![]() |
Error bei XML Speicherfreigabe
Hallo allerseits
Ich bin kürzlich von 2006 auf XE2 umgestiegen. Das Programm macht ein XML File und speichert den, nichts wildes! Bei Freigabe des Speichers kommt Error Klasse EInvalid Poiter "Ungültige Zeigeroperation", den Meldung kommt nur mit Debbuger XE2, zum Test habe ich den Free sofort nach dem Create aufgerufen -> gleicher Effekt Weißt jemand an was die Ursache liegt? |
AW: Error bei XML Speicherfreigabe
Zitat:
Mal im Detail im Debugger angeschaut? |
AW: Error bei XML Speicherfreigabe
Ja klar, es knallt genau wenn ich Free aufrufe!
|
AW: Error bei XML Speicherfreigabe
Zitat:
|
AW: Error bei XML Speicherfreigabe
der zeigt mir auf system.pas
Code:
procedure TObject.FreeInstance;
begin CleanupInstance; _FreeMem(Self); end; class function TObject.InstanceSize: Longint; begin Result := PInteger(PByte(Self) + vmtInstanceSize)^; end; |
AW: Error bei XML Speicherfreigabe
Wäre es nicht hilfreich mal Deinen Code zu posten?
|
AW: Error bei XML Speicherfreigabe
Interface:
IXMLSchicht2_eintrag_listeType = interface(IXMLNodeCollection) XML-Deklaration
Code:
Funktion Aufruf
TDateFromID_FN = class
private fXML_DOC : TXMLDocument; fXML_S2Eintrag : IXMLSchicht2_eintrag_listeType; public procedure SaveToFileXML(const aFileName : String =''); constructor Create; virtual; destructor Destroy; override; property XML : IXMLSchicht2_eintrag_listeType read fXML_S2Eintrag write fXML_S2Eintrag; constructor TDateFromID_FN.Create; begin try slK2 := TStringList.Create; slVSK2 := TStringList.Create; slKZ2 := TStringList.Create; slE23 := TStringList.Create; slKInfo2 := TStringList.Create; slBInfo2 := TStringList.Create; fXML_DOC := TXMLDocument.Create(nil); fXML_S2Eintrag := Getschicht2_eintrag_liste(fXML_DOC); fXML_DOC.Active:= True; fXML_DOC.Version := '1.0'; fXML_DOC.StandAlone := 'yes'; fXML_DOC.Encoding := 'UTF-8'; except .... end; end; destructor TDateFromID_FN.Destroy; begin .... fXML_DOC.Active := False; fXML_DOC.free; end; procedure TDateFromID_FN.SaveToFileXML(const aFileName: String); begin fXML_DOC.SaveToFile(aFileName); end;
Code:
S2Daten:= TDateFromID_FN.Create;
S2Daten.SaveToFileXML('C:\temp\XML\S2_Test'+DateToStr(Now )+'.xml'); S2Daten.Free; |
AW: Error bei XML Speicherfreigabe
Wann gibst du die ganzen Stringlisten frei?
|
AW: Error bei XML Speicherfreigabe
Im destructor befor ich fXML_DOC auf inactive setze ist als .... bezeichnet beim exept im constructor ist das gleiche
|
AW: Error bei XML Speicherfreigabe
Verwende mal probehalber IXMLDocument statt dem TXMLDocument (also bei deiner Variable)
und laß' das
Delphi-Quellcode:
weg, bzw. ersetze es durch
.Free
Delphi-Quellcode:
.
:=nil
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz