Einzelnen Beitrag anzeigen

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, 18: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 18:19 Uhr)
  Mit Zitat antworten Zitat