YStudio Y++

指针操作(基础支持库)

Y++ / YStudio 开发文档 · 一点滴

路径:支持库 → 基础支持库 → 指针操作。

硬约束

  1. 扁平命令;用于取址、读写任意内存、偏移。日常 WinAPI 优先走 .yp / DLL支持,本库偏底层。
  2. 地址用 长整数;误用可导致崩溃,请确认指针有效且长度足够。
  3. 取文本指针地址(文本变量) 不是 LPCWSTR;DLL 宽串请用 DLL_文本指针W。
  4. 与 DLL支持 / 指针手册 配合使用。

快速开始

整数 x = 100
长整数 p = 取整数指针地址(x)
指针到整数(p, 200)  // 按实现读写;详见签名
输出(x)

指针操作

本分类共 34 条。

取字节指针地址

  • 签名:长整数 取字节指针地址(字节 变量)
  • 说明:取字节变量的对象地址,供指针读写命令使用。
  • 参数一│变量: 字节变量

取字节集指针地址

  • 签名:长整数 取字节集指针地址(字节集 变量)
  • 说明:取字节集变量的对象地址,供指针命令或 DLL 使用。
  • 参数一│变量: 字节集变量

取小数指针地址

  • 签名:长整数 取小数指针地址(小数 变量)
  • 说明:取小数变量的对象地址,供指针读写命令使用。
  • 参数一│变量: 小数变量

取指针地址

  • 签名:长整数 取指针地址(长整数 地址, [长整数 字节偏移=0])
  • 说明:返回地址加字节偏移后的新地址(不做内存读写)。
  • 参数一│地址: 原始地址
  • 参数二│[字节偏移=0]: 可正可负的字节偏移

取数组指针地址

  • 签名:长整数 取数组指针地址(数组 变量)
  • 说明:取数组变量的对象地址,供指针命令或 DLL 使用。
  • 参数一│变量: 数组变量

取整数指针地址

  • 签名:长整数 取整数指针地址(整数 变量)
  • 说明:取整数变量的对象地址,供指针读写命令使用。
  • 参数一│变量: 整数变量

取文本指针地址

  • 签名:长整数 取文本指针地址(文本 变量)
  • 说明:取文本变量的对象地址,供指针命令或 DLL 使用。
  • 参数一│变量: 文本变量

取通用指针地址

  • 签名:长整数 取通用指针地址(通用 变量)
  • 说明:取通用变量的对象地址,供指针读写命令使用。
  • 参数一│变量: 通用变量

取逻辑指针地址

  • 签名:长整数 取逻辑指针地址(逻辑 变量)
  • 说明:取逻辑变量的对象地址,供指针读写命令使用。
  • 参数一│变量: 逻辑变量

取长整数指针地址

  • 签名:长整数 取长整数指针地址(长整数 变量)
  • 说明:取长整数变量的对象地址,供指针读写命令使用。
  • 参数一│变量: 长整数变量

指针偏移

  • 签名:长整数 指针偏移(长整数 地址, [长整数 字节偏移=0])
  • 说明:计算地址加字节偏移后的新地址,不读取内存内容。
  • 参数一│地址: 原始地址
  • 参数二│[字节偏移=0]: 可正可负;省略为 0

指针写单浮点

  • 签名:逻辑 指针写单浮点(长整数 地址, 小数 值)
  • 说明:向地址写入单精度浮点(参数以小数传入)。
  • 参数一│地址: 可写地址
  • 参数二│值: 要写入的浮点值

指针写字节

  • 签名:逻辑 指针写字节(长整数 地址, 字节 值)
  • 说明:向地址写入 1 字节。
  • 参数一│地址: 可写地址
  • 参数二│值: 字节

指针写字节集

  • 签名:逻辑 指针写字节集(长整数 地址, 字节集 数据)
  • 说明:把字节集内容写入指定地址。
  • 参数一│地址: 可写缓冲区首地址
  • 参数二│数据: 要写入的字节集

指针写小数

  • 签名:逻辑 指针写小数(长整数 地址, 小数 值)
  • 说明:向地址写入双精度小数。
  • 参数一│地址: 可写地址
  • 参数二│值: 小数

指针写整数

  • 签名:逻辑 指针写整数(长整数 地址, 整数 值)
  • 说明:向地址写入 4 字节有符号整数。
  • 参数一│地址: 可写地址
  • 参数二│值: 要写入的整数

指针写逻辑

  • 签名:逻辑 指针写逻辑(长整数 地址, 逻辑 值)
  • 说明:向地址写入逻辑值。
  • 参数一│地址: 可写地址
  • 参数二│值: 真/假

指针写长整数

  • 签名:逻辑 指针写长整数(长整数 地址, 长整数 值)
  • 说明:向地址写入长整数。
  • 参数一│地址: 可写地址
  • 参数二│值: 长整数

指针到单浮点

  • 签名:单浮点 指针到单浮点(长整数 地址)
  • 说明:从地址读取单精度浮点(4 字节 float)。
  • 参数一│地址: 可读地址

指针到字节

  • 签名:字节 指针到字节(长整数 地址)
  • 说明:从地址读取 1 个字节(0~255)。
  • 参数一│地址: 可读地址

指针到字节集

  • 签名:字节集 指针到字节集(长整数 地址, [整数 长度=0])
  • 说明:从原生缓冲区复制指定长度字节,返回独立字节集。
  • 参数一│地址: 缓冲区首地址
  • 参数二│[长度=0]: 要复制的字节数;须明确缓冲区大小

指针到小数

  • 签名:小数 指针到小数(长整数 地址)
  • 说明:从地址读取双精度小数(8 字节 double)。
  • 参数一│地址: 可读地址

指针到指针

  • 签名:长整数 指针到指针(长整数 地址)
  • 说明:读取地址处存放的指针值(再解一层)。
  • 参数一│地址: 存放指针的地址

指针到数组

  • 签名:数组 指针到数组(长整数 地址)
  • 说明:把地址解释为 Y++ 数组对象并读回。
  • 参数一│地址: 数组对象地址

指针到整数

  • 签名:整数 指针到整数(长整数 地址)
  • 说明:从地址按 4 字节有符号整数读取(对应 Y++ 整数 / int32)。
  • 参数一│地址: 可读的内存地址

指针到文本

  • 签名:文本 指针到文本(长整数 地址)
  • 说明:把地址解释为 Y++ 文本对象指针并读取其内容。
  • 参数一│地址: Y++ 文本对象地址

指针到文本A

  • 签名:文本 指针到文本A(长整数 地址, [整数 字节数=0])
  • 说明:读取原生窄字符缓冲区(优先 UTF-8,失败则按系统 ANSI)。
  • 参数一│地址: char 缓冲区地址
  • 参数二│[字节数=0]: 0 表示读到结尾空字符

指针到文本W

  • 签名:文本 指针到文本W(长整数 地址, [整数 字符数=0])
  • 说明:读取原生 UTF-16(wchar_t*/LPCWSTR)缓冲区为文本。
  • 参数一│地址: UTF-16 缓冲区地址
  • 参数二│[字符数=0]: 0 表示读到结尾空字符

指针到通用

  • 签名:通用 指针到通用(长整数 地址)
  • 说明:把地址解释为 Y++ 通用对象并读回。
  • 参数一│地址: 通用对象地址

指针到逻辑

  • 签名:逻辑 指针到逻辑(长整数 地址)
  • 说明:从地址读取逻辑值(真/假)。
  • 参数一│地址: 可读地址

指针到长整数

  • 签名:长整数 指针到长整数(长整数 地址)
  • 说明:从地址读取长整数(平台指针宽度相关的有符号长整型)。
  • 参数一│地址: 可读地址

指针取错误

  • 签名:文本 指针取错误()
  • 说明:返回最近一次指针操作的错误信息文本;无错误时为空。

指针是否可写

  • 签名:逻辑 指针是否可写(长整数 地址, [整数 长度=1])
  • 说明:检测从地址起指定字节长度是否可写。
  • 参数一│地址: 起始地址
  • 参数二│[长度=1]: 检测字节数

指针是否可读

  • 签名:逻辑 指针是否可读(长整数 地址, [整数 长度=1])
  • 说明:检测从地址起指定字节长度是否可读。
  • 参数一│地址: 起始地址
  • 参数二│[长度=1]: 检测字节数

易错对照

错误 正确
取文本指针地址 当 LPCWSTR 用 DLL_文本指针W
空字节集仍当有效缓冲 空集地址可能为 0
越界读写 先确认长度/对齐

相关

DLL支持 · 指针/DLL 手册 · DLL 声明(.yp) · 字节集