AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated?
Thema durchsuchen
Ansicht
Themen-Optionen

Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated?

Offene Frage von "jaenicke"
Ein Thema von Sequitar · begonnen am 28. Apr 2023 · letzter Beitrag vom 28. Apr 2023
Antwort Antwort
Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#1

Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated?

  Alt 28. Apr 2023, 17:12
Habe heute versucht ein Projekt von 104 auf 113 zu migrieren, das per system.zip.tzipfile dateien aus einer zip datei extrahiert.

In 104 läuft der code einwandfrei, jedoch wird in 11.3 in der unit system.zip Zeile 1732 eine access violation geworfen da offensichtlich eine Klassenvariable nicht erstellt wurde (bzw der class constructor TZipFile.Create nicht aufgerufen wurde)

Delphi-Quellcode:
TZipFile = class
  private type
    TCompressionDict = TDictionary< TZipCompression , TPair<TStreamConstructor, TStreamConstructor > >;
  private class var
    FCompressionHandler: TCompressionDict;
{..}

procedure TZipFile.Read(Index: Integer; out Stream: TStream; out LocalHeader: TZipHeader);
{..}
1732: // Create Decompression stream.
  StreamCons := FCompressionHandler[TZipCompression(FFiles.List[Index].CompressionMethod)].Value; //hier ist das feld FCompressionHandler nicht assigned!
Es wurde kein Code geändert, derselbe Code läuft in ..10.4.
Wer kann mir einen Tip geben?

Geändert von Sequitar (28. Apr 2023 um 17:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.352 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated

  Alt 28. Apr 2023, 17:33
In 104 läuft der code einwandfrei, jedoch wird in 11.3 in der unit system.zip Zeile 1732 eine access violation geworfen da offensichtlich eine Klassenvariable nicht erstellt wurde (bzw der class constructor TZipFile.Create nicht aufgerufen wurde)
Bei mir wird in 11.3 der Klassen-Konstruktor aufgerufen und FCompressionHandler ist zugewiesen. Hast du einmal einen Haltepunkt auf den class constructor gesetzt?
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated

  Alt 28. Apr 2023, 17:50
Danke, ja habe ich getestet. der Class constructor der Klasse tzipfile wurde nicht erreicht.
Ich habe den Fehler allerdings jetzt behoben, indem ich ein neues Package erstellt habe. Anscheinend wurde das alte Package aus 104 zwar kompiliert, war aber inkompatibel.

Also alles in ein neues 114 package gepackt, neu kompiliert.
Jetzt wird auch der Class constructor aufgerufen, wie erwartet.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.352 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated

  Alt 28. Apr 2023, 19:05
Dann könntest du die beiden Packages ja vergleichen. Aber letztlich ist dir ja vermutlich auch nur wichtig, dass es funktioniert.

Es wäre allerdings schön gewesen, wenn du dazu geschrieben hättest, dass es sich um ein Package handelt.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Sequitar

Registriert seit: 8. Jan 2016
74 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated

  Alt 28. Apr 2023, 19:26
Dann könntest du die beiden Packages ja vergleichen. Aber letztlich ist dir ja vermutlich auch nur wichtig, dass es funktioniert.

Es wäre allerdings schön gewesen, wenn du dazu geschrieben hättest, dass es sich um ein Package handelt.
Stimmt allerdings, hab ich vergessen.
Nur ist das normal, dass bei einem Versionsumstieg die package DPR komplett neu anzulegen sind,, bei den standard-DLLs musste ich nichts an den dpr-Dateien ändern?

Ich glaube aber auch, dass ich nicht die Erfahrung habe, jetzt den Code oder den binary output der beiden Kompilate zu vergleichen.Daher bin ich in der Tat froh dass es läuft.

Die restliche Migration war ganz ok, wenn man mal davon absieht dass dass "Migration tool" jedes Mail ein Problem mit den Zeilenumbrüchen in den Projektdateien hat, wenn man die Settings von einer Version in die andere migriert und dass die registrierung nur manuell per download der lizenzdatei ging und nicht per zugesandtem Key
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.352 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Migration D10.4 to 11.3 Community: Tzipfile.read. Klassenvariable nicht allocated

  Alt 28. Apr 2023, 19:54
Nur ist das normal, dass bei einem Versionsumstieg die package DPR komplett neu anzulegen sind,, bei den standard-DLLs musste ich nichts an den dpr-Dateien ändern?
Nein, das ist nicht normal. Deshalb wäre ein Vergleich der beiden .dproj Dateien auch interessant gewesen.

Die restliche Migration war ganz ok, wenn man mal davon absieht dass dass "Migration tool" jedes Mail ein Problem mit den Zeilenumbrüchen in den Projektdateien hat, wenn man die Settings von einer Version in die andere migriert
Sei froh, dass das überhaupt funktioniert. Ich nutze es nicht, sondern möchte wissen, was da wo konfiguriert ist. Damit gab es immer wieder mal Probleme.

und dass die registrierung nur manuell per download der lizenzdatei ging und nicht per zugesandtem Key
Das klappte bei mir problemlos. Ich musste nur den Key eingeben und (wie seit ein paar Versionen) dann auch nicht mehr die Logindaten. Früher musste man ja beides angeben.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  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 21:26 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