PackerCallback()

Syntax

Ergebnis = PackerCallback(@Callback())
Beschreibung
Definiert eine Callback-Funktion, um die Komprimierung mittels CompressMemory(), AddPackFile() und AddPackMemory() zu überwachen oder abzubrechen. Die Callback-Funktion wird während des Komprimierungsprozesses in regelmäßigen Abständen aufgerufen.

Parameter

@Callback() Die Adresse einer aufzurufenden Callback-Funktion. Sie muss folgendes Format haben:
  Procedure Callback(Current.q, Total.q)
    ;
    ; Gibt als Ergebnis #True zurück, um das Komprimieren fortzusetzen, oder #False zum Abbrechen.
    ;
    ProcedureReturn Result
  EndProcedure

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Beispiel

  UseZipPacker()
  
  ; Die Callback-Funktion wird in regelmäßigen Abständen aufgerufen, um den Fortschritt anzuzeigen
  ; oder die Komprimierung abzubrechen. Sie muss der folgenden Deklaration entsprechen.
  ;
  Procedure Callback(Current.q, Total.q)
    Debug "Progress: " + Current + " bytes / "+ Total + " bytes"
    
    ProcedureReturn #True ; Gibt #True zurück, um die Komprimierung fortzusetzen, oder #False, um sie abzubrechen.
  EndProcedure
    
  ; Callback für alle zukünftigen Packerkompressionen installieren.
  PackerCallback(@Callback())
  
  ; 50 GB Speicher allokieren, um ihn zu komprimieren.
  *Buffer = AllocateMemory(50*1024*1024, #PB_Memory_NoClear)
  
  ; Der Ausgabepuffer ist vorsichtshalber etwas größer als der Quellpuffer.
  *Output = AllocateMemory(51*1024*1024, #PB_Memory_NoClear)

  CompressedSize = CompressMemory(*Buffer, MemorySize(*Buffer), *Output, MemorySize(*Output))

  Debug "Compressed length: " + CompressedSize + " bytes"

Siehe auch

CompressMemory(), AddPackFile(), AddPackMemory()

Unterstützte OS

Alle

<- PackEntryType() - Packer Inhaltsverzeichnis - UncompressMemory() ->