AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Zugriffsverletzung ADSI, so was komisches hab ich noch nie..
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung ADSI, so was komisches hab ich noch nie..

Offene Frage von "Dezipaitor"
Ein Thema von cherry · begonnen am 21. Jan 2010 · letzter Beitrag vom 21. Jul 2010
Antwort Antwort
Seite 4 von 9   « Erste     234 56     Letzte »    
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#31

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

  Alt 2. Feb 2010, 07:57
Moin, Moin

wodurch wird die ZV den ausgelöst, ist sEditedFields = nil?

Mal etwas anderes, warum fütterst du nicht ein ADSUser-Objekt und speicherst
alle Änderungen auf einmal?

Gruss
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#32

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

  Alt 2. Feb 2010, 08:18
Zitat von Alter Mann:
Moin, Moin

wodurch wird die ZV den ausgelöst, ist sEditedFields = nil?

Mal etwas anderes, warum fütterst du nicht ein ADSUser-Objekt und speicherst
alle Änderungen auf einmal?

Gruss
Hmmm...

weder

Delphi-Quellcode:
if not Assigned(sEditedFields) then
    ShowMessage('asdf');
noch
Delphi-Quellcode:
if sEditedFields = nil then
    ShowMessage('asdf');
Zeigen die Message an! > Ich kanns mir nicht erklären. Wahrscheinlich wird meine StringList durch die Kuriositäten von ADSI zerstört?!

Dein zweiter Vorschlag ist gut, ich werde das bei Gelegenheit so lösen. Aber ich möchte trotzdem rausfinden was hier das Problem ist! Hast du eine Idee? das gibts doch gar net!
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#33

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

  Alt 3. Feb 2010, 10:02
Zitat von Alter Mann:
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).
Anscheinend verhält sich das Ganze aber noch verrückter als bisher angenommen. Ich meine "sEditedFields" wird gar nie verwendet in einer Funktion die ADSI behandelt, aber es scheint so, als ob es trotzdem was vermurgst. Ich bin überzeugt, das meine aktuelle Zugriffsverletung auch durch ADSI ausgelöst wird.

Wie kannst du dir das erklären Alter Mann?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#34

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

  Alt 4. Feb 2010, 06:54
Habe nochmals intensiv an deiner Aussage hier:

Zitat:
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).
herumstudiert.

Die Lösung in diesem Falle war ja, eine Dummy Funktion aufzurufen, damit nur die Funktionsvariablen verschossen werden. Nun, ich verstehe aber nicht wie das Interface überhaupt was zerstören kann.
Ich übergebe ja nicht meine Variablen als Parameter, sondern nur eine Kopie dessen Werte. Wie zum Teufel soll das Interface mir dann z.B. ein Textfeld zerschiessen?

Und bei meinem etwas später aufgetauchten Problem werde ich noch weniger schlau daraus. Es wird mir eine TStringList zerschossen, die nicht mal in der Dummyfunktion verwendet wird. Woher weiss das Interface überhaubt, dass ein solches Objekt vorhanden ist? -Und noch besser wieso wird es zerschossen?

Ich bin momental echt am zweifeln ob es einen Sinn hat so weiter zu Programmieren?! Anscheinend eignet sich Delphi überhaupt nicht für AD sachen. Oder liegt es am AD ?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#35

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

  Alt 4. Feb 2010, 08:58
Hi,

ich bin auch nicht der Interface-Guru, es ist aber so, dass du die Adresse übergibst an der der Inhalt deiner Variablen steht.
Diese Speicheradresse wird nun von dem Interface-Objekt für die jeweilige Aktion verwenden und anschließend freigegeben.

Der Vorteil, du musst dich nicht darum kümmern.

Die Lösung(?) aus dem Dilemma, keine Referenzen sonder 'echte' Kopien (move(StringList.Strings[I], Str, Length(StringList.Strings[I])).

Ich gebe hier nur meine Erfahrung mit ADSI wieder, bitte nicht als generelle Lösung sehen.

Gruss
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#36

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

  Alt 4. Feb 2010, 09:10
Lieber Alter Mann

Ich bin froh, dass du diene Erfahrungen mit mir teilst. Ich hoffe du wirst das auch weiterhin tun. Denn ich verliere langsam aber sicher meinen Verstand, oder eben dass, was noch davon übrig geblieben ist.

1. Ich dachte wenn man bei einer Prozedur die Parameter per var übergibt ist es so wie du gesagt hast. Bei einer "normalen" übergabe, dachte ich, dass es den Wert kopiert.

2. Was ja komisch ist, ist, dass meine StringList gar nichts mit der ADSI Funktion zu tun hat. Und sie trotzdem verschossen wird. Was soll ich also einen Wert kopieren, ich übergebe ihn ja nirgens.
"(move(StringList.Strings[I], Str, Length(StringList.Strings[I]))" bringt mir ja nichts, die Stringlist verwende ich weder in der Dummy Funktion noch in der eigentlichen. Ich verwende die Liste nur in der Funktion in der die Dummy Funktion verwendet wird. >>> Wieso nur wird die Liste Verschossen, hast du da auch eine plausible Erklärung?

Danke schon mal
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#37

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

  Alt 4. Feb 2010, 12:28
Sag mal, ist diese Unit mit TADSManager von dir?
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#38

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

  Alt 4. Feb 2010, 13:25
Zitat von Dezipaitor:
Sag mal, ist diese Unit mit TADSManager von dir?
Ja isse. Kann mitunter schon auch an der liegen! > Hier noch mal separat im Anhang...
Angehängte Dateien
Dateityp: pas eextemporaneousmumblings_808.pas (58,4 KB, 6x aufgerufen)
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#39

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

  Alt 4. Feb 2010, 13:33
Also, wenn bei mir soetwas passiert, dann gehe ich meist so vor:

Eliminiere alles Unnötige. D.h. extrahiere die Essenz, also das Wesentliche in ein eigenes Projekt ohne Klasse, ohne tolle Tricks und teste es dort.

Die Referenzzählung kommt mir schon etwas suspekt vor, besonders da ich noch nie soetwas gesehen habe, dass nur mit NewInstance statt Create arbeitet. Insbesodere funktioniert die Referenzzählung eh nicht, da sie nie kleiner wird. Wie denn auch?

Also lass mal die Klassen beiseite und teste das AD Search separat.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#40

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

  Alt 15. Feb 2010, 16:33
Zitat von Dezipaitor:
Also lass mal die Klassen beiseite und teste das AD Search separat.
Ok, nach einer Woche Ferien habe ich das jetzt mal gemacht. Ich habe eine neue Testanwendung erstellt mit den Funktionen die Ich testen will.
Dabei ist nun jeglicher Komfort weg, insbesondere halt auch beim GUI...

Bis jetzt hab ich es so verstanden: ADSGetObject zerschiesst mir die Parameter nachdem ADSGetObject diese nicht mehr benötigt.
Dies kann man umgehen indem man die eigentliche Funktionen in DummyFunktionen ausführt. Dies führt dazu, dass nicht die eigentlichen Parameter, sondern die der Dummyfunktion
zerschossen werden, somit kann ich nach dessen Betätigung immer noch auf meine Objekte zugreiffen.

Dies hat eine ganze Weile funktioniert und ich habe einigermassen verstanden wieso und konnte das auch "elegant" (naja, nicht wirklich) umgehen...

Jetzt aber die Ausnahme:

Delphi-Quellcode:
  
  // Benutzer verschieben
  if sEditedFields.IndexOf('EdContainerPath') > -1 then
  begin
    if DummyMoveUser(sOldObjectPath, EdContainerPath.Text) then
      txt := txt + '> Benutzer erfolgreich verschoben// KEINE ZUGRIFFSVERLETZUNG
      //txt := txt + '> Benutzer erfolgreich von "'+sOldObjectPath+'" nach "'+EdContainerPath.Text+'" verschoben' // ZUGRIFFSVERLETZUNG
    else
      txt := txt + '(!) Benutzer konnte nicht verschoben werden.';
  end;
Es funktioniert wenn ich anschliessend nicht auf die Parameter sOldObjectPath und EdContainerPath.Text zugreiffe, wenn ich das tue gibts die alt Bekannt Zugriffsverletzung...

Ich bitte also wieder mal mehr um eure Mithilfe, denn ich frag mich langsam was mit mir los ist. Oder ob es an Delphi liegt? ich steck im Sumpf, holt mich hier raus!

Danke schon ma...
Angehängte Dateien
Dateityp: zip testapp_112.zip (422,5 KB, 10x aufgerufen)
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 9   « Erste     234 56     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz