Länge einer IncludeBinary bestimmen!
- 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
Ich dachte es geht um die Parameterübergabe.hmi222 hat geschrieben: Versuche die Länge zu bekommen
OHNE in der DataSection den2. Dummy Pointer (bei dir ogg_end)
zu setzen...
Dann ist die Antwort ja leicht: Unmöglich
Woran willste den erkennen, das Ende ist, wenn keinerlei Kennzeichen
existiert?
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Und wenn man das Include ans Ende der EXE packt? Ungefähr so:
Am Ende darf dann natürlich kein Code mehr folgen. Dann braucht man kein 2. Label. Es wäre sogar möglich mehrere Dateien zu prüfen, ohne, dass noch ein "Dummy-Label" gesetzt werden muss.
Wär das ne Idee? Habs noch nicht prüfen können.
Code: Alles auswählen
MessageRequester("", "Lalala, überall Code")
; mehr Code
; ...
; ganzes Program...
; Länge des Includes mit ohne 2. Label:
Debug FileSize(ProgramFilename())-?datei
DataSection
datei: IncludeBinary "C:\foto.jpg"
EndDataSection
Wär das ne Idee? Habs noch nicht prüfen können.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- 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
>> Am Ende darf dann natürlich kein Code mehr folgen.
Deshalb ist die Datasection aber nicht am Ende
Normallerweise sind die Windows-Resourcen am Ende, Manifest, Icon usw.
Aber nach der Compilierung an die Exe anhängen geht, ist aber eher mehr
als weniger Aufwand
Deshalb ist die Datasection aber nicht am Ende

Normallerweise sind die Windows-Resourcen am Ende, Manifest, Icon usw.
Aber nach der Compilierung an die Exe anhängen geht, ist aber eher mehr
als weniger Aufwand

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

> Deshalb ist die Datasection aber nicht am Ende
Danke für den Tipp! Wieder was gelernt!
Heißt das, egal wo und egtal wie viele DataSections ich notiere, sie werden immer am Anfang des Executables eingebunden?
Wenn sie am Anfang eingebunden werden, könnte man das Label ja dahinter setzen, dann braucht man das Label nicht davor => das nur zu der Frage, wie man das ganze mit 1 Label realisieren kann @ Threadersteller
Danke für den Tipp! Wieder was gelernt!
Heißt das, egal wo und egtal wie viele DataSections ich notiere, sie werden immer am Anfang des Executables eingebunden?
Wenn sie am Anfang eingebunden werden, könnte man das Label ja dahinter setzen, dann braucht man das Label nicht davor => das nur zu der Frage, wie man das ganze mit 1 Label realisieren kann @ Threadersteller
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
- 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
>> sie werden immer am Anfang des Executables eingebunden?
Woraus hast denn das wieder geschlossen
Am Anfang ist immer der PE-Header
Woraus hast denn das wieder geschlossen

Am Anfang ist immer der PE-Header
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

- PureBasic4.0
- Beiträge: 785
- Registriert: 29.10.2006 17:26
- Wohnort: 127.0.0.1
hab's nicht getestet, aber vielleicht mit
Code: Alles auswählen
MemorySize(?Include)
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
- 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
Nein, brauchste nicht testen, geht nichtPureBasic4.0 hat geschrieben:hab's nicht getestet, aber vielleicht mitCode: Alles auswählen
MemorySize(?Include)

Die DataSection in der Exe Allociert keinen Speicher vom Heap
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Wenn es denn unbedingt nur ein Pointer bei der Parameterübergabe sein darf:
Code: Alles auswählen
Procedure Test(*Pointer)
FLen.l = PeekL(*Pointer)
SStart.l = *Pointer + SizeOf(Long)
MessageRequester("Drinnen", "Startadresse : " + Str(SStart)+ #LF$ + "Länge : " + Str(FLen) , #MB_OK|#MB_ICONINFORMATION)
EndProcedure
; Länge der IncludeDatei
FLen.l = ?dateiE - ?datei
PokeL(?dateiL, FLen)
MessageRequester("Draußen", "Startadresse : " + Str(?datei)+ #LF$ + "Länge : " + Str(FLen) , #MB_OK|#MB_ICONINFORMATION)
Test(?dateiL)
DataSection
dateiL: Data.l 0
datei: IncludeBinary "foto.jpg"
dateiE:
EndDataSection
Zuletzt geändert von jear am 15.04.2007 02:10, insgesamt 3-mal geändert.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!