Zitat von
Muetze1:
Da es Instanzen sind, werden nur Zeiger auf die Listen übergeben. Der Stack ist somit nicht überfüllt und der Heap (wo die Instanzen liegen) sollte dabei auch noch nicht voll sein. Grundlegend würde ich bei deiner Fehlerbeschreibung eher vermuten, dass die Stringlisten anderweitig wieder freigegeben wurde und nicht mehr existieren oder du mit Zeigern falsch hantierst bzw. Bereichsfehler hast. Hast du schonmal die Bereichsprüfung in den Projektoptionen->Compiler aktiviert und das Projekt danach komplett neu erstellt und gestartet? Kamen dort Hinweise?
Ja, hab ich gemacht. Keine Hinweise! Das Problem was ich hab ist, dass die Variable z.B. "b" vor der Funktion die richtigen Werte enthaellt und wenn ich nach dem Eintritt der Funktion nochmal auf die Variable gucke, dann ist die Variable kaputt ... Hier meine Funktionen:
function foo2(a,b,c,d,e:TStringList):HRESULT;
begin
...
end;
function foo(a,b,c,d,e:TStringlist):HRESULT;
begin
// breakpoint ( hier ist "b" richtig ....)
result:=foo2(a,b,c,d,e,blabla); // in der Funktion foo2 ist "b" kaputt ...
end;
Somit werden die TStringlists zweimal weitergeben, aber ich hab nirgends "var" stehen, daher sollte er ja immer nur kopien übertragen.