Italia
Stammtisch & Caffè

GlobalAlloc.

 


Beschreibung:

Alloziert einen Speicherblock aus dem Heap




Deklaration:

Def GlobalAlloc(2) !kernel32, GlobalAlloc




Parameter:

1.Parameter: Eine Kombination folgender Konstanten:
~GMEM_FIXED = $0, kann nicht mit ~GMEM_MOVEABLE oder ~GMEM_DISCARDABLE kombiniert werden

~GMEM_MOVEABLE = $2, kann nicht mit ~GMEM_FIXED kombiniert werden

~GPTR = $40
~GHND = $42
~GMEM_DDESHARE = $2000
~GMEM_DISCARDABLE = $100, kann nicht mit ~GMEM_FIXED kombiniert werden

~GMEM_NOCOMPACT = $10
~GMEM_NODISCARD = $20
~GMEM_SHARE = $2000
~GMEM_ZEROINIT = $40, Initialisiert den Speicherinhalt mit Null

2.Parameter: Size& (Dimensione des Speichers in Byte)



Rückgabewert:

Im Fehlerfalle 0, ansonsten Handle des allozierten Speicherobjekts

Beispiel:

KompilierenMarkierenSeparieren
Def 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)

href='./../funktionsreferenzen/xprofan/endif/'>EndIf



GlobalLock, GlobalReAlloc, GlobalFree

 
24.05.2005  
 



Salve
 
24.05.2005  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

1.412 Views

Untitledvor 0 min.
Ernst27.04.2016
Michael Borowiak22.12.2012

Themeninformationen

Dieses Thema hat 2 subscriber:

iF (1x)
unbekannt (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie