Gibt es einen PB-Befehl, um einen Speicherbereich sehr schnell mit einem bestimmten Long-Wert zu füllen?
Bisher konnte ich leider nichts in dieser Richtung finden.
Speicherbereich mit Werten füllen ...
- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
Speicherbereich mit Werten füllen ...
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
- PureLust
- Beiträge: 1145
- Registriert: 21.07.2005 00:02
- Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
- Wohnort: am schönen Niederrhein
Hallo Andi256, ...
ich hab mich wohl leider etwas missverständlich ausgedrückt.
Ich meinte nicht, einen Long-Wert in einen einzelne 4Byte Speicherbereich zu schreiben, sondern einen Bereich von mehreren KBytes mit diesem Wert zu füllen.
Also sowas wie FillMemoryLong(Startadresse, Länge, Wert.l).
(Denkbar wären natürlich auch: FillMemoryWord() und FillMemoryByte().)
Sowas wäre ja vermutlich recht simpel per Inline-Assembler zu realisieren - nur leider ist mein Assembler seit der Amigazeit sehr eingerostet.
Ganz abgesehen davon, dass das noch der gute alte 68000er ASM war.
ich hab mich wohl leider etwas missverständlich ausgedrückt.
Ich meinte nicht, einen Long-Wert in einen einzelne 4Byte Speicherbereich zu schreiben, sondern einen Bereich von mehreren KBytes mit diesem Wert zu füllen.
Also sowas wie FillMemoryLong(Startadresse, Länge, Wert.l).
(Denkbar wären natürlich auch: FillMemoryWord() und FillMemoryByte().)
Sowas wäre ja vermutlich recht simpel per Inline-Assembler zu realisieren - nur leider ist mein Assembler seit der Amigazeit sehr eingerostet.
Ganz abgesehen davon, dass das noch der gute alte 68000er ASM war.

[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
- 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
Wie wäre es mit FillMemory_()

//Nachtrag: Ich sehe gerade, ist ja nur für Byte, du brauchst ja longThe FillMemory function fills a block of memory with a specified value.
VOID FillMemory (
PVOID Destination, // pointer to block to fill
DWORD Length, // size, in bytes, of block to fill
BYTE Fill // the byte value with which to fill
);
Parameters
Destination
Points to the starting address of the block of memory to fill.
Length
Specifies the size, in bytes, of the block of memory to fill.
Fill
Specifies the byte value with which to fill the memory block.
Return Values
This function has no return value.

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.

- 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
al90 hat geschrieben:@ts-soft
FillMemory() scheint nicht zu funzen. Die API scheint von PB nicht
unterstützt zu werden?!
Code: Alles auswählen
*MEM = AllocateMemory(8)
FillMemory_(*MEM, 8, 60)
For I = 0 To 7
Debug PeekB(*MEM + I)
Next
FreeMemory(*MEM)

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.
