Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Scheint Freeware zu sein, womit einer Nutzung nichts im Weg stehen sollte:
Disclaimer: Die Software wird kostenlos, in gutem Zustand, so wie sie ist, vom Autor Terry Reese angeboten. Die Benutzung erfolgt auf eigene Gefahr. Durch das Herunterladen und/oder die Benutzung beeinhaltet, dass sie zustimmen, den Autor von allen Effekten und Nebeneffekten zu verschonen.
Download of PureBasic - Module Download of PureBasic - Programmes
Prototype.l CabCompressInitialize()
Prototype.l CabCreate(Destination.s)
Prototype.l CabAddFile(hCab.l, Source.s, Destination.s)
Prototype.l CabClose(CabFile.s, hCab.l)
Prototype.l CabCompressTerminate()
Define.l cab10dll = OpenLibrary(#PB_Any, "cab10.dll")
If cab10dll
Global CabCompressInitialize.CabCompressInitialize = GetFunction(cab10dll, "CABCOMPRESSINITIALIZE")
Global CabCreate.CabCreate = GetFunction(cab10dll, "CABCREATE")
Global CabAddFile.CabAddFile = GetFunction(cab10dll, "CABADDFILE")
Global CabClose.CabClose = GetFunction(cab10dll, "CABCLOSE")
Global CabCompressTerminate.CabCompressTerminate = GetFunction(cab10dll, "CABCOMPRESSTERMINATE")
Else
MessageRequester("Error", "Could not load cab10.dll!", #MB_ICONERROR)
End
EndIf
Define.l CabFile
Define.s File, CabFileName = "C:\data.cab"
If CabCompressInitialize()
CabFile = CabCreate(CabFileName)
If CabFile
File.s = "C:/data.dat"
CabAddFile(CabFile, File, File)
CabClose(CabFileName, CabFile)
EndIf
CabCompressTerminate()
EndIf
Ungetestet, da ich die DLL gerade nicht zur Hand habe.
Gruß
Thomas
Zuletzt geändert von ts-soft am 03.07.2007 22:19, insgesamt 1-mal geändert.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Programie hat geschrieben:
Da kommt eine Fehlermeldung bei "CabClose(CabFile)" mit "Invalid Memory Access".
Das Beispiel von Forge funktioniert!
Habs mal korrigiert, hab bei Forge seine nicht deklarierten Shared Variablen
nicht aufgepaßt. (solche undeklarierten Codes passen IMHO nicht her)
Ohne DLL kann ich leider auch nicht testen, sry
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Green Snake hat geschrieben:Forge hat doch einen Link zur DLL gepostet....
Ist das ein Grund, wenn ich die nicht brauche, Windows entihält bereits alles
um Cab-Dateien zu erstellen, bzw. extrahieren.
Ausserdem würde ich dann Prototypes für alle Funktionen erstellen, wie es
eigentlich sein sollte, dazu hab ich aber keine Lust, da die DLL für mich
Unnütz ist. Die API der in Windows vorhandenen "CABINET.DLL" reicht mir
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.