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