Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#23

Re: Zugriffsverletzung ADSI, so was komisches hab ich noch n

  Alt 28. Jan 2010, 08:57
Hallo,
Zitat von Alter Mann:
Moin, Moin

warum passiert es hier?
Zitat:
ShowMessage(EdContainerPath.Text); // <--- ZUGRIFFSVERLETZUNG jetzt hier?
Ganz einfach: Es wird mit Interfaces gearbeitet. Das 'schöne' daran das die Variablen freigegeben werden sobald sich nicht
mehr gebraucht werden(aus Sicht des Interface).

Beispiel:
Delphi-Quellcode:
...
  sContainerPath := EdContainerPath.Text;
if AdsMgr.ADSObject.MoveTo(ADSPATH_OF_CURRENT_USER, sContainerPath) then
txt := '- Benutzer wurde erfolgreich nach "'+sContainerPath+'" verschoben.// <--- ZUGRIFFSVERLETZUNG !!!
...
Egal ob der Aufruf erfolgreich war oder nicht, sContainerPath wird aus Sicht des Interfaces nicht mehr
benötigt, deshalb die Zugriffsverletzung.

Ein:
Delphi-Quellcode:
...
  sContainerPath := EdContainerPath.Text;
if AdsMgr.ADSObject.MoveTo(ADSPATH_OF_CURRENT_USER, sContainerPath) then
txt := '- Benutzer wurde erfolgreich nach "'+ EdContainerPath.Text +'" verschoben.'
...
wird jedoch funktionieren, da ja mit EdContainerPath.Text weiter gearbeitet wird.

Es gibt in diesem Zusammenhang noch einige andere Ungereimtheiten, die ich jetzt nicht erklären kann, da ich keine Zugriff
auf meine Dateien/Projekte habe(die liegen zu Hause). Also notfalls noch einmal melden.

Bis Bald
endlich mal 'ne Erklärung die ich verstehe und anhand derer ich das Problem nachvollziehen kann.

Das heißt aber doch, für jeden Zugriff mit ADSObject mache man sich die entsprechende Variabel, weise ihr den entsprechenden Wert zu und greife nachher nie mehr auf diese Variabel zu.
Das passt auch auf die Lösung, an die ich mich zu erinnern glaube.
  Mit Zitat antworten Zitat