NumPut
Stores a number in binary format at the specified address+offset.
OutputVar := NumPut(Number, VarOrAddress , Offset = 0, Type = UPtr)
Function Example: PTR := NumPut(100, var, "Uint")
Parameters
- OutputVar
The name of the variable in which to store the the address to the right of the item just written is returned. This is often used when writing a sequence of numbers of different types, such as in a structure for use with DllCall..
If the target address is invalid, an empty string is returned. However, some invalid addresses cannot be detected as such and may cause unpredictable behaviour.
- Number
The number to store.
- VarOrAddress
-
A memory address or variable. If VarOrAddress is a variable such as
MyVar
and it contains a string (not a pure number), the address of the variable's string buffer is used. This is usually equivalent to passing&MyVar
, but omitting the "&" performs better and ensures that the target address + offset is valid. If the variable contains a pure number, that number is assumed to be an address. - Offset
An offset - in bytes - which is added to VarOrAddress to determine the target address.
- Type
-
One of the following strings (defaults to UPtr if omitted):
UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr or UPtrUnlike DllCall, these must be enclosed in quotes when used as literal strings.
For details see DllCall Types.
General Remarks
If an integer is too large to fit in the specified Type, its most significant bytes are ignored; e.g. NumPut(257, var, 0, "Char")
would store the number 1.
If only three parameters are present, the third parameter can be either Offset or Type. For example, NumPut(x, var, "int")
is valid.