![]() |
JEDI API 2.3 and JEDI WSCL 0.9.3 auf Delphi 10.4 Sydney
Hallo liebe Community,
heute glücklicherweise ohne aktive Frage, sondern wieder ein Memo für mich in der Zukunft, und Know-How für alle die es brauchen können. Ich habe seit ein paar Tagen Delphi 10.4 Sydney und muss nun logischerweise alle bestehenden Projekte von Delphi 2010 dorthin protieren - mit fast 12 Jahren Differenz in der Technik natürlich ein verhältnismäßig großer Sprung. Alle externen Komponenten musste ich neu dazu kaufen. Als eines der letzten Probleme bestand dann nur noch die "JEDI API 2.3 and JEDI WSCL 0.9.3". Bitte nicht verwechseln mit den Jedi-Komponenten (JCL) aus dem GetIt-Paketmanager! Diese spezielle Jedi-Bibliotheken verwende ich unter anderem, um verschiedenen Benutzer(-gruppen) in meinem Programm verschiedene Rechte erteilen zu können: ![]() Nun habe ich auch nach mehreren Tagen diese Bibliotheken nicht zum laufen bekommen. Das Projekt wird leider nicht mehr betreut, viele genannte Homepages und das SVN gibt es scheinbar nicht mehr. Wenn man denn weiß "wie", kann man die Units trotzdem einfach weiterverwenden: 1) Lade die letzte offizielle Version von der offizielle Homepage (aktuell bei SourceForge?) herunter und entpacke die Dateien z.B. nach "C:\JEDI API 2.3 and JEDI WSCL 0.9.3" 2) Erstelle ein leeres Delphi-Projekt (VCL Formularanwendung), das alle *deine* Units verwendet, die auf Units aus diesem Paket zugreifen müssen 3) Füge bei den Projekt-Optionen (nicht bei den Delphi-Optionen) bei Bibliotheken/Suchpfade alle benötigten Pfade hinzu. Das sollten sein:
Code:
4) Setze in den Projekt-Optionen das "Ausgabeverzeichnis der Units" auf einen existierenden, leeren Order ("c:\dcutemp\")
C:\JEDI API 2.3 and JEDI WSCL 0.9.3\jwa\branches\2.3\Common
C:\JEDI API 2.3 and JEDI WSCL 0.9.3\jwa\branches\2.3\Win32API C:\JEDI API 2.3 and JEDI WSCL 0.9.3\jwscl\branches\0.9.3\source C:\JEDI API 2.3 and JEDI WSCL 0.9.3\jwscl\branches\0.9.3\includes 5) Trage manuell die u.g. Patches in die Quelltext-Dateien ein 6) Kompiliere das Projekt 6a) Falls das kompilieren nicht klappt, ziehe öffne alle Unit, die nicht kompiliert werden können, und ziehe sie auf die rechte Seite in den äh? Projektmanager? So auf jeden Fall, dass diese Quelltextdatei(en) bestandteil des Projektes sind. Mit 6) fortfahren. 7) Kopiere alle .dcu-Dateien aus dem bei 4) genannten Ordner in einen gemeinsamen Ordner deiner Projekte, der überall im Such-/Bibliothekspfad steht 8) Deine anderen Projekte sollten sich nun wieder korrekt ausführen lassen. Dieser Weg muss keinesfalls "der richtige" und auch schon gar nicht "professionell" sein, aber zumindest bei mir hat es funktioniert, und das ist mir zunächst mal die Hauptsache. Falls es jemand besser kann, und/oder einen offiziellen Patch oder ein offizielles Paket für Delphi 10.4 veröffentlichen kann, wäre ich natürlich enorm dankbar. Folgendes muss per Hand gepatcht werden:
Code:
Zusammengefasst:
File: jwa\branches\2.3\Win32API\JwaWinType.pas
copy 6 add 1 {$DEFINE USE_DELPHI_TYPES} copy 6 File: jwa\branches\2.3\Win32API\JwaWinCrypt.pas copy 6 add 1 {$DEFINE USE_DELPHI_TYPES} copy 6 File: jwscl\branches\0.9.3\source\JwsclLsa.pas copy 6 replace 1 property LsaHandle: THandle Read fLsaHandle; copy 6 File: jwscl\branches\0.9.3\source\JwsclSecurityDialogs.pas copy 6 replace 1 MergedSD.OwnDACL := false; copy 1 add 1 MergedSD.OwnDACL := true; copy 6 File: jwscl\branches\0.9.3\source\JwsclToken.pas copy 6 replace 1 Handle : THandle; copy 6 File: jwscl\branches\0.9.3\source\JwsclTypes.pas copy 6 replace 1 TJwTokenHandle = THandle; copy 3 replace 1 TJwThreadHandle = THandle; copy 1 replace 1 TJwProcessHandle = THandle; copy 6 1) Dort, wo der Compiler meckert muss der Typ der Variable (meistens eine Variabel mit "Handle" im Namen) von Cardinal auf THandle geändert werden. 2) Zwei Dateien benötigen noch den Hinweis "{$DEFINE USE_DELPHI_TYPES}" 3) MergedSD.OwnDACL := true; da sonst nach dem Schließen jedes Sicherheitsdialogs das Programm abstürzt Ich hoffe, ich konnte hiermit beitragen, das Projekt noch einige Jahre länger verwendbar zu halten. Konstruktive Kritik ist gerne gesehen, Fragen zu dem Thema werde ich versuchen zu beantworten... |
AW: JEDI API 2.3 and JEDI WSCL 0.9.3 auf Delphi 10.4 Sydney
Hallo Leidensgenosse,
ich setze an verschiedenen Stellen ebenfalls die JEDI API Library ein, weil in den Delphi WinApi.xxx-Units einfach viele Deklarationen noch fehlen (ist aber mit der Zeit besser geworden). Derzeit nutze ich diese hier: ![]() Zugriff per Subversion: ![]() Dort sind auch alle Packages bis einschließlich Delphi 10.4 enthalten. HTH Achim |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz