# NumGet()

返回指定地址+偏移位置存储的二进制数值.

    Number := NumGet(VarOrAddress , Offset := 0, Type := "UPtr")

## 参数

VarOrAddress(变量或地址)

  内存地址或变量. 如果 VarOrAddress 是一个变量(例如 `MyVar`), 则使用变量字符串的缓冲地址. 这等同于传递 `&MyVar`, 然而省略 "&" 可以执行得更好并确保目标地址+偏移是有效的.

  如果变量 包含 目标地址时, 不要传递一个变量引用; 在这种情况下, 传递一个类似 `MyVar+0` 的表达式.

Offset(偏移)

  偏移(单位为字节), 添加到 VarOrAddress 以确定目标地址.

Type(类型)

  如果为空或省略, 则默认为 UPtr. 否则, 指定 UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr 或 UPtr.

  不支持 无符号 的 64 位整数, 因为 AutoHotkey 的内置整数类型是 Int64. 因此, 要使用大于或等于 0x8000000000000000 的数字, 请省略 U 前缀并将任何负值解释为较大的整数. 例如, 作为 Int64 的 -1 值实际上是 0xFFFFFFFFFFFFFFFF(如果期望它作为 UInt64). 在 64 位构建中, UPtr 等同于 Int64.

  与 DllCall() 不同的是, 作为原义字符串使用时必须括在引号中.

  更多细节请参阅 DllCall 类型.

## 返回值

如果目标地址无效, 则返回空字符串. 然而, 某些无效地址这里无法检测出来并可能导致不可预知的行为.

其他情况下返回指定地址+偏移的数字.

## 一般说明

如果只使用了两个参数, 则第二个参数可以为 Offset 或 Type. 例如, `NumGet(var, "int")` 是合法的.

## 相关

NumPut(), DllCall(), VarSetCapacity()

dftg