NumGet()

Gibt die Binärzahl an einer bestimmten Adresse+Offset zurück.

Zahl := NumGet(VarOderAdresse , Offset, Typ)
Zahl := NumGet(VarOderAdresse , Typ)

Parameter

VarOderAdresse

Eine Speicheradresse oder Variable. Wenn VarOderAdresse eine Variable wie MeineVar ist, wird die Adresse des Zeichenkettenpuffers der Variable verwendet. Im Prinzip entspricht dies der Übergabe von &MeineVar, allerdings wird durch Weglassen von "&" eine bessere Performanz erzielt und sichergestellt, dass die Zieladresse + Offset gültig ist.

Übergeben Sie keine Variablenreferenz, wenn die Variable die Zieladresse enthält; übergeben Sie in diesem Fall einen Ausdruck wie MeineVar+0.

Offset

Wenn leer oder weggelassen (oder wenn der 2-Parameter-Modus verwendet wird), wird standardmäßig 0 verwendet. Andernfalls geben Sie eine Zahl (in Bytes) an, die zur VarOderAdresse addiert wird, um die Zieladresse zu bestimmen.

Type

Wenn leer oder weggelassen, wird standardmäßig UPtr verwendet. Andernfalls geben Sie UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr oder UPtr an.

Vorzeichenlose 64-Bit-Integer werden nicht unterstützt, da der native Integertyp von AutoHotkey "Int64" ist. Um also mit Zahlen größer gleich 0x8000000000000000 zu arbeiten, lassen Sie das U-Präfix weg und interpretieren Sie alle negativen Werte als große Integer (Int64). Zum Beispiel ist ein Int64-Wert von -1 eigentlich 0xFFFFFFFFFFFFFFFF, wenn er als UInt64 gedacht ist. In 64-Bit-Builds ist UPtr äquivalent zu Int64.

Im Gegensatz zu DllCall() müssen diese in Anführungszeichen gesetzt werden, wenn sie direkt angegeben werden.

Weitere Informationen finden Sie unter DllCall-Typen.

Rückgabewert

Wenn die Zieladresse ungültig ist, wird eine leere Zeichenkette zurückgegeben. Es ist jedoch möglich, dass einige ungültige Adressen nicht als solche erkannt werden, was zu unvorhersehbarem Verhalten führen kann.

Andernfalls wird die Zahl an der angegebenen Adresse+Offset zurückgegeben.

Allgemeine Bemerkungen

Wenn nur zwei Parameter vorhanden sind, kann der zweite Parameter entweder Offset oder Typ sein. Zum Beispiel wäre NumGet(var, "int") zulässig.

NumPut(), DllCall(), VarSetCapacity()