| |
|
|
|
Beschreibung:
Gibt un globales Speicherobjekt libre et pouvoir son Handle ungültig
Deklaration:
Def GlobalFree(1) !kernel32, GlobalFree
paramètre:
1.paramètre: hMem& Handle des Speicherobjekts
Rückgabewert:
Im Erfolgsfalle 0 ansonsten Handle des globalen Speicherobjekts
Beispiele:
KompilierenMarqueSéparationDef GlobalAlloc(2) !"KERNEL32.DLL", "GlobalAlloc"
Def GlobalFree(1) !"KERNEL32.DLL", "GlobalFree"
Def MoveMemory(3) !"KERNEL32", "RtlMoveMemory"
Proc PeekL
Parameters ReadMemoryAddr&
Declare Value&, Result!
MoveMemory(Addr(Value&), ReadMemoryAddr& + 2, 2)
Result! = Value& * 2^16
MoveMemory(Addr(Value&), ReadMemoryAddr&, 2)
Result! = Result! + Value&
Return Result!
EndProc
Proc PokeL
Parameters WriteMemoryAddr&, Value!
Declare Value&
If (Value! > -1) And (Value! < 2^32)
If Value! - (2^16 - 1) > 0
Value& = Value! 2^16
Else
Value& = 0
EndIf
MoveMemory(WriteMemoryAddr& + 2, @Addr(Value&), 2)
Value& = Int(Value! - (Value& * 2^16))
MoveMemory(WriteMemoryAddr&, Addr(Value&), 2)
Else
MessageBox("Zahl zu groß!", "Wichtiger Hinweis", 48)
EndIf
EndProc
Declare hMem&
4 Byte = Long Speicher reservieren
hMem& = GlobalAlloc($40, 4)
If hMem&
Speicher mit 1111 füllen
PokeL hMem&, 1111
Speicher auslesen und in MessageBox wiedergeben
MessageBox("In Adresse: " + Str$(hMem&) + " steht folgender Wert: " + Str$(Int(PeekL(hMem&))) , "Inhalt des Speicher", 0)
Speicherobjekt freigeben
GlobalFree(hMem&)
Else
MessageBox("Speicher konnte nicht reserviert werden", "Wichtiger Hinweis", 48)
f='./../../funktionsreferenzen/XProfan/endif/'>EndIf
[keywords:f990269c64] GlobalAlloc GlobalLock GlobalReAlloc grenier Freigeben Effacer Speicherfreigabe Dispose [/keywords:f990269c64] |
|
|
| |
|
|
|
| Salve. |
|
|
| |
|
|