AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi JEDI API 2.3 and JEDI WSCL 0.9.3 auf Delphi 10.4 Sydney
Thema durchsuchen
Ansicht
Themen-Optionen

JEDI API 2.3 and JEDI WSCL 0.9.3 auf Delphi 10.4 Sydney

Ein Thema von berens · begonnen am 25. Jan 2021 · letzter Beitrag vom 26. Jan 2021
Antwort Antwort
berens

Registriert seit: 3. Sep 2004
431 Beiträge
 
Delphi 2010 Professional
 
#1

JEDI API 2.3 and JEDI WSCL 0.9.3 auf Delphi 10.4 Sydney

  Alt 25. Jan 2021, 11:36
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:
https://www.delphipraxis.net/184812-...verwenden.html

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:
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
4) Setze in den Projekt-Optionen das "Ausgabeverzeichnis der Units" auf einen existierenden, leeren Order ("c:\dcutemp\")
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:
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
Zusammengefasst:
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...
Delphi 10.4 32-Bit auf Windows 10 Pro 64-Bit, ehem. Delphi 2010 32-Bit auf Windows 10 Pro 64-Bit
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
103 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: JEDI API 2.3 and JEDI WSCL 0.9.3 auf Delphi 10.4 Sydney

  Alt 26. Jan 2021, 11:56
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:

https://github.com/ccy/jedi-apilib

Zugriff per Subversion:
https://github.com/ccy/jedi-apilib.git/trunk

Dort sind auch alle Packages bis einschließlich Delphi 10.4 enthalten.

HTH
Achim
Achim
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 12: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