NumPut
优质
小牛编辑
130浏览
2023-12-01
以二进制格式把数字存储到指定地址+偏移的位置。
NumPut(Number, VarOrAddress [, Offset = 0][, Type = "UPtr"])
参数
- 数字
要保存的数字。
- VarOrAddress
内存地址或变量。如果 VarOrAddress 是类似
MyVar
的变量且它的值不是纯数字或对象,则相当于传递&MyVar
。然而,省略“&”可以执行的更好并确保目标地址+偏移是有效的。- Offset
偏移(单位为字节),添加到 VarOrAddress 以确定目标地址。
- 类型
-
下列字符串的其中一个(省略时默认为 UPtr):
UInt、Int、Int64、Short、UShort、Char、UChar、Double、Float、Ptr 或 UPtr与 DllCall 不同的是,作为原义字符串使用时必须括在引号中。
更多细节请参阅 DllCall 类型。
返回值
如果目标地址无效,则返回空字符串。然而,某些无效地址这里无法检测出来并可能导致不可预知的行为。
其他情况下则返回刚写入项右边的地址。常用于写入不同类型的一序列数字,例如在 DllCall 中使用的结构。
一般说明
如果整数太大而无法用指定的 Type 存储,那么它的高位会被忽略:例如 NumPut(257, var, 0, "Char")
将存储数字 1。
如果只使用了三个参数,则第三个参数可以为 Offset 或 Type。例如,NumPut(x, var, "int")
是有效的。