Thema: Delphi ADSI, Stackproblem

Einzelnen Beitrag anzeigen

Alex O.

Registriert seit: 30. Apr 2007
8 Beiträge
 
Delphi 2010 Enterprise
 
#2

Re: ADSI, Stackproblem

  Alt 12. Sep 2009, 11:24
mit etwas Glück konnte ich def Fehler selbst finden :-)

für die Nachwelt, hier meine Lösung:

das DADUser._Release darf nicht (!) aufgerufen werden - statt dessen direkt NIL zuweisen, und schon geht's besser (Zumindest kommt der Stack nicht mehr durcheinander)

Delphi-Quellcode:
finally
  //if DADUser <> nil then
  // DADUser._Release;
  DADUser:=nil;
  ...
end;
Ausserdem musste meine Function so aufrufen
Delphi-Quellcode:
asm
  push ESI;
  push EDI;
end;
  Res:=HRtoAD(DHR);
asm
  pop EDI;
  pop ESI;
end;
die Register ESI und EDI werden anscheinend durch den Aufruf von ADsOpenObject umgebogen und nicht korrekt wiederhergestellt.
Folge war, dass der erste Aufruf der Funktion zwar geklappt hatte, daraufhin aber einige Variablen, nicht mehr erreichbar waren.

vielleicht kann das ja mal jemandem helfen!
  Mit Zitat antworten Zitat