-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
17. Mai 2010
*push*
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
10. Mai 2010
Hallo Dezipaitor
Habe noch ein kleines Problem. Arbeite nun seit unserer letzten konversation mit den Dateien aus dem Repository das du mir vorgeschlagen hast...
https://jedi-apilib.svn.sourceforge.n ... t/jedi-apilib/jwapi/branches/2.3/
Es ist mir jedoch aufgefallen, das die Änderungen von Remko da nicht gemacht wurden...
Bei dieser Version hier
...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
20. Apr 2010
Sorry... meinst du den hier:
https://jedi-apilib.svn.sourceforge.net/svnroot/jedi-apilib/jwapi
und
https://jedi-apilib.svn.sourceforge.net/svnroot/jedi-apilib/jwscl/trunk
das hab ich jetzt... Scheint richtig zu sein, hab "// Remko@23.02.2010 - conversion: checked size : OK" in JwaAdsTLB.pas gefunden :stupid:
jwapi scheint ok zu sein, jedoch jwscl kann ich nicht kompilieren.
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
7. Apr 2010
Sind die Änderungen in Beitrag #75 die einzigen die du in JwaAdsTlb gemacht hast. Und die Änderungen #69 die einzigen für JwaAdsHlp ? oder schickst du mir deine Dateien?
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
6. Apr 2010
Lieber spät als nie...
Wo kriege ich deine aktuelle JwaAdsHlp und JwaAdsTLB? Ich hab jetzt endlich Zeit dies auszutesten. Oder hast du "nur" die Änderungen gemacht die du hier auch gepostet hast? Dann kann ichs ja auch selber anpassen. Danke.
LG
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
23. Mär 2010
@Dezipaitor und @Remko
Sorry das ich mich so lange nicht gemeldet habe. Ich werde das sehr gerne testen und dann auch Feedback abliefern. Nur muss ich bis morgen ein Betarelease des Programms bereit haben und bin daher sehr unter druck. Ich konnte die neue JwaAdsTlb leider noch nicht implementieren, da ich zuwenig Zeit hatte.
Ich verspreche aber, dass ich das gleich nächste Woche...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Hey! Vielen Dank euch allen :!:
:dancer2: :witch: :bouncing4: :bounce1: :firejump: :bounce2: :hi: :hello:
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Du meinst das mit Pointer und THandle nehm ich an?! Nun, da ich ja jetzt die JEDI units verwende verwende ich auch jwaADsTLB, und ich weiss nicht ob ich da einfach das IDirectoryInterface ändern soll?!
Zudem habe ich das Testhalber kurz gemacht und es klappte trotzdem nicht... > Zugriffsverletzung an derselben Stelle!
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Versuche zunächst mal ganz klein anzufangen:
procedure TForm1.Button3Click(Sender: TObject);
const
ColCount = 3;
ColNames : array of PWideChar = ('Name','Description','ADsPath');
var
search: IDirectorySearch;
ptrResult: Pointer;
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Danke nochmals für dein Engagement. Leider ändert sich auch dann nichts. Auch wenn ich "ptrResult: Pointer;" habe.
Komisch ist, dass "hr := search.ExecuteSearch(LPCWSTR(searchfilter), @AttrArray, dwCount, ptrResult);" = S_OK ist, aber die Zeile weiter unten:
"hr := search.GetNextRow(Pointer(ptrResult)); " in einer Zugriffsverletzung endet.
Hast du viellecht ein funktionierendes Beispiel,...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Das war nur ein Test. OleCheck gibt gleich eine Fehlermeldung raus, ich möchte aber später die Fehlermeldung in meinen AdsManager speichern und diese dann nur bei bedarf durch AdsManager.getLastError aufrufen. Also würde dann
if not Succeeded(result) then
begin
e := EOleSysError.Create('', result, 0);
SetLastError(e.Message);
end;
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Danke.
Und noch das letzte mal das ich eure Nerven in diesem Thread strapaziere bevor ich ihn dann schliesse...
Da die Deklaration von ADsGetObject nun einen Pointer erwartet als out Parameter, habe ichs folgendermassen gelöst:
function TForm1.AccessObject(const PathName: string; const riid:TGUID; out ppObject: Pointer): HRESULT;
var
e: EOleSysError;
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Ich habe den Wrapper von Agnisoft, da ich mir Anfangs nicht bewusst war, dass eine JEDI version existierte.
Ok. Ich verwende jetzt die jedi Units und es funktioniert soweit super. Nur habe ich immer noch das Problem, dass ich mit den HRESULT nicht klar komme...
Ich nehme nochmals das Besipiel (AdsGetObject)
Mit untenstehendem Code ergibt sich folgendes:
#1: Ich verwende einen Falschen...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Ich hab nie gesagt, dass es einfach ist und es auch nie geglaubt. Aber was willst du damit eigentlich sagen?
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
Hmm... und schon wieder schleicht sich ein Problem ein:
Wenn ich die Funktionen AdsGetObject/AdsOpenObject mit safecall deklariere, werden zwar die exceptions wieder ausgelöst nur verhaltet sich das Ganze wieder ähnlich unstabil wie vorher...
Diese Funktion zeigt mir einen Benutzer an und die dazugehörigen Gruppen... Dies funktioniert wenn ich die Funktionen im Wrapper mit stdcall deklariere,...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
24. Feb 2010
HURRA!! Genau das scheint die Lösung zu sein. Die einzige die bei mir keine Gänsehaut hervorruft. :-) Danke.
Nun habe ich ein kleines Folgeproblem...
Bis jetzt hat bei mir die Funktion ADsGetObject/ADsOpenObject immer eine EOleException ausgelöst, wenn was nicht i.O. war. Diese konnte ich dann super verwenden. Wenn jetzt z.B eine Authentifizierung mit ADsOpenObject() fehlschlägt, kann ich...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
22. Feb 2010
Funktioniert wunderbar. Kannst du mir die asm auskommentieren`?
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
15. Feb 2010
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...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
4. Feb 2010
Ja isse. Kann mitunter schon auch an der liegen! > Hier noch mal separat im Anhang...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
4. Feb 2010
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...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
4. Feb 2010
Habe nochmals intensiv an deiner Aussage hier:
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...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
3. Feb 2010
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?
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
2. Feb 2010
Hmmm...
weder
if not Assigned(sEditedFields) then
ShowMessage('asdf');
noch
if sEditedFields = nil then
ShowMessage('asdf');
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
2. Feb 2010
Hmm super, da hab ich mich schon halbers mit den "DummyFunktionen" abgefunden, da tritt folgendes Phänomen auf:
Diese Funktion endet stets in einer Zugriffsverletung:
{******************************************************************************}
// UI: SAVE USER INFORMATION AFTER EDITING
{******************************************************************************}
procedure...
-
Forum: Win32/Win64 API (native code)
Delphi
by cherry,
28. Jan 2010
Hi...
1. Dann ist also die Lösung: eine Dummy Funktion zu verwenden?!
2. Und warum funktioniert die Dummy Funktion und das Workaround mit den Variablen klappt nicht?
3. Ist das jetzt nur bei Delphi so, oder hat man das Problem auch mit einer anderen Entwicklungsumgebung/Sprache?