PeekP und PokeP

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.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

PeekP und PokeP

Beitrag von STARGÅTE »

Der Code ist fast ein Witz, aber jetzt wo der 64Bit Compiler näher rückt, wird man es bestimmt öffters brauchen.

Mit PokeP oder PeekP kann man einen Pointer der ja entwerder 32 oder 64 Bit hat in den Speicher schreiben.

Außerdem noch die Structure (die ich nicht gefunden habe) für Pointer:

Falls es das in der 4.30 schon gibt, oder irgendwo anders steht, dann soll ein MOD das bitte löschen :|

Code: Alles auswählen

Structure POINTER
 *Pointer
EndStructure

CompilerIf SizeOf(POINTER) = SizeOf(QUAD)
 Macro PeekP(MemoryBuffer)
  PeekQ(MemoryBuffer)
 EndMacro
 Macro PokeP(MemoryBuffer, Pointer)
  PokeQ(MemoryBuffer, Pointer)
 EndMacro
CompilerElse
 Macro PeekP(MemoryBuffer)
  PeekL(MemoryBuffer)
 EndMacro
 Macro PokeP(MemoryBuffer, Pointer)
  PokeL(MemoryBuffer, Pointer)
 EndMacro
CompilerEndIf
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Gibts schon :wink:
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
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: PeekP und PokeP

Beitrag von ts-soft »

STARGÅTE hat geschrieben: Falls es das in der 4.30 schon gibt, oder irgendwo anders steht, dann soll ein MOD das bitte löschen :|
Wird nicht verraten, PeekI und PokeI könnten die wohl heissen :mrgreen:
Den Datentyp .i kannste bereits in 4.20 nutzen, macht aber nur zur späteren
Migration sinn!

// edit
shit, war Nürnberg wieder 21 Sek. schneller als Berlin
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
hardfalcon
Beiträge: 3447
Registriert: 29.08.2004 20:46

Beitrag von hardfalcon »

ts-soft, du pöser Whistleblower!1! :wink:

Thx für die Info! :allright:
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Re: PeekP und PokeP

Beitrag von AND51 »

ts-soft hat geschrieben:Den Datentyp .i kannste bereits in 4.20 nutzen, machtaber nur zur späteren Migration sinn!
Waaaaah!? Seit wann? Wieso weiß ich daovn nichts? Dachte, das kommt erst mit 4.30.........
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

nagut ^^ dann hau es halt in die Tonne ....
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hab grad a-z durchgetestet... außer den bekannten Datentypen funktioniert nur '.i' in 4.20, es gibt also keine weiteren Überraschungen^^
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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

Beitrag von ts-soft »

STARGÅTE hat geschrieben:nagut ^^ dann hau es halt in die Tonne ....
Die Idee war doch schon gut :allright:
Allerdings sind in 64-Bit natürlich nicht nur die Pointer, sondern auch die
Handles zu berücksichtigen! Und SetWindowLong_ geht natürlich auch 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
Antworten