NumGet()

Gibt eine binäre Nummer zurück, die auf einer bestimmten Adresse + Offset zu finden ist.

Nummer := NumGet(VarOderAdresse , Offset := 0, Typ := "UPtr")

Parameter

VarOderAdresse

Eine Speicheradresse oder Variable. Wenn VarOderAdresse eine Variable wie MeineVar ist, wird die Adresse des Zeichenkettenpuffers der Variable verwendet. Im Prinzip ist dies das gleiche wie, als würde man &MeineVar übergeben, allerdings wird durch Weglassen von "&" eine bessere Leistung 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

Eine Zahl (in Bytes), die mit VarOderAdresse addiert wird, um die Zieladresse zu bestimmen.

Typ

Eine der folgenden Zeichenketten (standardmäßig UPtr, wenn dieser Parameter weggelassen wird):
UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr oder UPtr.

Vorzeichenlose 64-Bit-Integer werden nicht unterstützt, da AutoHotkey's nativer Integer-Typ Int64 ist. Um mit Zahlen größer gleich 0x8000000000000000 umzugehen, sollten Sie auf das U-Präfix verzichten und negative Werte als große Integer (Int64) behandeln. Ein als UInt64 gedachter Int64-Wert von -1 ist in Wirklichkeit 0xFFFFFFFFFFFFFFFF. Bei 64-Bit-Versionen ist UPtr äquivalent zu Int64.

Diese Typen müssen, im Gegensatz zu den Typen von DllCall(), in Anführungszeichen gesetzt werden, wenn sie direkt geschriebene Zeichenketten sein sollen.

Um mehr darüber zu erfahren, siehe DllCall-Typen.

Rückgabewert

Ist die Zieladresse ungültig, wird eine leere Zeichenkette zurückgegeben. Allerdings ist es möglich, dass einige ungültige Adressen nicht als solches erkannt werden, was zu unvorhersehbaren Verhalten führen könnte.

Ansonsten wird eine Nummer zurückgegeben, die auf der angegebenen Adresse + Offset zu finden ist.

Allgemeine Bemerkungen

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

Siehe auch

NumPut(), DllCall(), VarSetCapacity()