C-Wrapper für PureBasic

Fragen zu allen anderen Programmiersprachen.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: C-Wrapper für PureBasic

Beitrag von Mok »

Irgendwie will ich's nicht kapieren...
Ich habe die Datei test.txt und will sie in einem Archiv namens test.lzm speichern. Wie genau soll ich das jetzt machen? Und wie soll ich im voraus überhaupt die 'Zielgröße' wissen?

Edit: In 7z.dsw wird aber keine der anderen .c-Dateien (GZip.c, Rar.c, usw.) irgendwie inkludiert :|
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Re: C-Wrapper für PureBasic

Beitrag von milan1612 »

Die Library arbeitet nicht mit Dateien sondern direkt mit im Speicher abgelegten Daten.
Wenn du also Dateien komprimieren willst, musst du diese erst in den Speicher einlesen.

Fuer die Zielgroesse nimmst du die Groesse der Quelldaten. Der Aufruf von LzmaCompress
gibt dir dann die wirklich gebrauchte Groesse zurueck, damit kannst du deinen Zielbuffer
dann auf die richtige Groesse verkleinern.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: C-Wrapper für PureBasic

Beitrag von Mok »

milan1612 hat geschrieben:Die Library arbeitet nicht mit Dateien sondern direkt mit im Speicher abgelegten Daten.
Wenn du also Dateien komprimieren willst, musst du diese erst in den Speicher einlesen.
Die Lib arbeitet aber mit Strings (char*), daher kann ich keinen Buffer übergeben.

PS:
Mok hat geschrieben:In 7z.dsw wird aber keine der anderen .c-Dateien (GZip.c, Rar.c, usw.) irgendwie inkludiert
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Re: C-Wrapper für PureBasic

Beitrag von milan1612 »

Mok, char ist in C der kleinste verfuegbare Datentyp und ein unsigned char entspricht einem Byte. <)
Hat also nicht automatisch was mit Strings zu tun...

Bei deiner anderen Frage weiss ich jetzt auch nicht weiter, probier halt ein bisschen rum.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: C-Wrapper für PureBasic

Beitrag von Mok »

milan1612 hat geschrieben:Mok, char ist in C der kleinste verfuegbare Datentyp und ein unsigned char entspricht einem Byte. <)
Immer diese Sparsamkeit <)
Und kann ich size_t als Integer bzw. Long behandeln?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: C-Wrapper für PureBasic

Beitrag von ts-soft »

Als Integer!

Desweiteren solltest Du mal in diesen Source schauen: http://www.purebasic.fr/english/viewtop ... 64#p316764
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.
Bild
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: C-Wrapper für PureBasic

Beitrag von Mok »

ts-soft hat geschrieben:Desweiteren solltest Du mal in diesen Source schauen: http://www.purebasic.fr/english/viewtop ... 64#p316764
Ach du Kacke! Jetzt hock ich schon 1,5 Tage bei dem Gedöns, statt dass ich mir einen bereits vorhanden Wrapper lade :freak:
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: C-Wrapper für PureBasic

Beitrag von ts-soft »

Mok hat geschrieben:Ach du Kacke! Jetzt hock ich schon 1,5 Tage bei dem Gedöns, statt dass ich mir einen bereits vorhanden Wrapper lade :freak:
Ich dachte, Du möchtest was lernen, sonst hätte ich den Link schon früher gepostet :mrgreen:
Mok hat geschrieben:Edit: Was muss ich denn mit den .LIB-Dateien machen? Werden die wie DLLs behandelt?
Die machen eine DLL überflüssig. Wenn Du lieber eine DLL nutzen möchtest, machste aus dem Import
Prototypes oder nimmst die ImportLib der DLL (die ersetzt die DLL nicht).
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.
Bild
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: C-Wrapper für PureBasic

Beitrag von Mok »

ts-soft hat geschrieben:
Mok hat geschrieben:Edit: Was muss ich denn mit den .LIB-Dateien machen? Werden die wie DLLs behandelt?
Die machen eine DLL überflüssig. Wenn Du lieber eine DLL nutzen möchtest, machste aus dem Import
Prototypes oder nimmst die ImportLib der DLL (die ersetzt die DLL nicht).
Geht's auch anders rum? Also aus einer DLL eine LIB machen?
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: C-Wrapper für PureBasic

Beitrag von ts-soft »

Mok hat geschrieben:Geht's auch anders rum? Also aus einer DLL eine LIB machen?
Du mußt vor dem Compilieren des Sources (lzma) bestimmen, ob Du eine statische Lib
oder eine dynmaische DLL haben möchtest, vorausgesetzt es ist beides mit dem Source
möglich.

Eine statische Lib macht die DLL überflüssig, sie wird zur Exe hinzugelinkt.

Beim erstellen einer DLL wird auch eine statische Lib erzeugt (etwas kleiner als obige)
welche keine Funktionen enthält, sondern nur die Funktionsadressen, welche eine frühe
Bindung zur DLL ermöglicht (so wie PB es mit den API-DLLs macht).

Für weiteren Infos solltest Du dann googlen oder wikepedia bemühen :wink:
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.
Bild
Antworten