| |
|
|
| Diese PCU verwendet die briefLZ.lib von Joergen Ibsen (https://www.ibsensoftware.com)
Alle Funktionen unterstützen einen Namensraum, dessen Verwendung auch ausdrücklich empfohlen wird Der Übersichtlichkeit wegen wurde in der Beschreibung das ?_ weggelassen Parameter stehen in Klammern hinter dem Funktionsnamen
Funktionsbeschreibung:
[quote:ce4322d5e2]BLZ_Init() Muß vor der ersten Benutzung aufgerufen werden. Das Ergebnis ist positiv im Erfolgsfalle
BLZ_Free() Muß am ende der Benutzung aufgerufen werden
BLZ_CRC(SourceMem&, SourceLength&[, InitialLength&]) SourceMem& = Adresse des Speicherbereichs (z.B. Bereich# oder Addr(Text$) SourceLength& = Größe des Speicherbereichs (z.B. SizeOf(Bereich#) oder Len(Text$) InitialLength& = Dieser Parameter ist Optional (Default 0), für weitere Infos bitte die Original-Hilfe studieren
Ergebnis: CRC-Checksumme als Long
BLZ_UnPackMemory(SourceMem&, DestMem&, DePackedSize&) SourceMem& = siehe oben DestMem& = Zielspeicher, dieser ist vorher zu Reservieren (Bereichsvariable dimensionieren) DePackedSize& = Größe der ungepackten Datei
Ergebnis: Im Erfolgsfalle grösser 0
BLZ_PackMemory(SourceMem&, DestMem&, SourceLength&) SourceMem& = siehe oben DestMem& = siehe oben (dieselbe Größe wie SourceLen, nach dem Packen mit dem Ergebnis dieser Funktion neu Dimmen!) SourceLength& = siehe oben[/quote:ce4322d5e2] E x t r a F u n k t i o n e n :
Damit auch Einsteiger diese PCU nutzen können, hab ich die 2 folgenden Funktionen (in XProfan 10) hinzugefügt. Vielleicht mal die Sourcen ansehen, um die obigen Funktionen besser zu verstehen. Diese Funktionen benutzen einen eigenen Dateiheader und führen beim entpacken automatisch einen CRC-Check durch
[quote:ce4322d5e2]BLZ_UnpackFile(SourceFile$, DestFile$) SourceFile$ = Datei, ggfls. mit Pfad, die gepackt werden soll DestFile$ = Name und ggfls. Pfad der zu erstellenden Datei
Ergebnis: 1 im Erfolgsfalle
BLZ_PackFile(SourceFile$, DestFile$) siehe BLZ_UnpackFile() [/quote:ce4322d5e2] Beispiel: KompilierenMarkierenSeparieren Gruß Thomas |
|
|
| |
|
|
|
Michael Dell | Ist Dir gelungen, echt Klasse!!! |
|
|
| Salu Michael...
Hab zwar krumme Fieß awer dofir e' ecklich Gsicht! | 27.12.2006 ▲ |
|
|
|
|
| Danke Michael Paar Beispiele fehlen noch, entpacken von Bildern in den RAM usw. für Spiele, aber da sollen die anderen Community-Mitglieder selber ihren Grips anstrengen, die grundsätzliche Möglichkeit ist gegeben |
|
|
| |
|
|
|
| Hab jetzt noch ein Beispiel beigefügt, welches ein gepacktes Bild im Speicher entpackt und darstellt.
Die ersten beiden Proceduren lassen sich natürlich auch unabhängig von der PCU für Bitmaps verwenden, deshalb poste ich sie hier nochmal KompilierenMarkierenSeparierenAutor: Thomas (ts-soft) Schulz
Proc CatchBmp
Parameters MemPointer&
Declare hDC&, BITMAPFILEHEADER#, BMPInfo&, init&, hImage&
hDC& = External("user32.dll", "GetDC", External("user32.dll", "GetDesktopWindow"))
Dim BITMAPFILEHEADER#, 14
BITMAPFILEHEADER# = MemPointer&
BMPInfo& = MemPointer& + 14
init& = MemPointer& + Long(BITMAPFILEHEADER#, 10)
hImage& = External("gdi32.dll", "CreateDIBitmap", hDC&, BMPInfo&, 4, init&, BMPInfo&, 0)
External("user32.dll", "ReleaseDC", External("user32.dll", "GetDesktopWindow"), hDC&)
Dispose BITMAPFILEHEADER#
Return hImage&
EndProc
Proc FreeCatchBmp
Parameters hImage&
DeleteObject hImage&
EndProc
Gruß Thomas |
|
|
| |
|
|
|
Dietmar Horn | Hallo Thomas,
das ist ja mal wieder eine reife Leistung, Deine PCU! Damit eröffnen sich wieder bisher ungeahnte Möglichkeiten!
Habe Deine PCU (und natürlich auch Deine uFMOD.PCU und die MemoryModule.inc von Sebastian) umgehend in den XProfan-Manager aufgenommen, damit sich das alles auch dadurch weiter verbreiten kann und nicht so leicht verlorengeht (jedenfalls in unserem Territorium nicht).
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 27.12.2006 ▲ |
|
|
|
|
| Hallo Dietmar, danke für Dein Lob Aufnahme in anderen Projekten steht nichts im Wege, solange die beiliegenden Lizensen der anderen Autoren (speziell der C-Libs) beachtet werden. Ich suche aber alles so aus, das es entweder unter LGPL, ZLIB oder Modzilla Lizens fällt, so das eine kommerzielle Nutzung sichergestellt ist.
Gruß Thomas[size=6:ad0d3b2a08], der gerade einen Compiler in reinem XProfan schreibt, dazu mehr demnächst in einem neuen Thread[/size:ad0d3b2a08] |
|
|
| |
|
|
|
Dietmar Horn | Hallo Thomas,
wenn wir was von anderen Autoren in unseren Manager aufnehmen, dann wird grundsätzlich alles aufgenommen, was der jeweilige Autor an zusätzlichen Infos, ZIPs etc. mitgeliefert hat. Denn mit fremden Federn möchten wir uns keinesfalls schmücken ...
Änderungen an Codes nehme ich lediglich dann vor, wenn offensichtliche Fehlerchen drin sind (was meist die Lauffähigkeit unter kleineren PRF-Versionen betrifft), oder wenn mir das bei einigen Sachen im Zusammenhang mit der Lauffähigkeit im Manager günstig bzw. erforderlich erscheint.
Gruß Dietmar |
|
|
| Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V. [...] Windows 95 bis Windows 7 Profan² 6.6 bis XProfan X2 mit XPSE Das große XProfan-Lehrbuch: [...] | 28.12.2006 ▲ |
|
|
|
|
| Update auf Version 2.0
Containerfunktionen hinzugefügt
BLZ_CreatePack(PackFile$) PackFile$ = Name des Packs, ggfl. mit Pfad Erstellt ein neues PackFile
BLZ_OpenPack(PackFile$) PackFile$ = Name des Packs, ggfl. mit Pfad Öffnet ein Packfile zum weiteren extrahieren
BLZ_ClosePack() Schließt das aktuelle PackFile
BLZ_AddPackFile(File$) File$ = Name der hinzuzufügenden Datei Fügt eine Datei zu einem mit CreatePack geöffneten Pack hinzu
BLZ_AddPackMem(MemPointer&, Size&) MemPointer& = Speicheradresse (z.B. eine Bereichsvariable) Size& = Größe dieser Bereichsvariablen Fügt den in diesem Speicher befindlichen Daten zum Pack hinzu
BLZ_NextPackFile() Entpackt das nächste Packfile und gibt die Speicheradresse zurück Um die größe zu erfahren ist BLZ_PackFileSize() sofort nach dieser Funktion aufzurufen
BLZ_PackFileSize() Gibt die größe des zuletzt mit BLZ_NextPackFile() entpackten Packs
Jetzt können alle Bilder, Sounds, XGL-Dateien usw. in ein Pack gepackt werde. Hab die angepaßte ogldemo als Beispiel hinzugefügt.
Gruß Thomas |
|
|
| |
|
|
|
Jac de Lad | Thomas hat seinen Account ja löschen lassen und auch seine Website ist auch nicht mehr vorhanden. Ich möchte das Ganze gern zu einem universell einsetzbaren Format ausweiten. Dazu werde ich noch Funktionen für Anzahl der Dateien im Archiv und Dateinamen und so hinzufügen. Wenn ich fertig bin, lad ichs hoch.
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 19.05.2008 ▲ |
|
|
|