|
|
发表于 2026-4-16 00:03:54
|
显示全部楼层
海南省海口市
本帖最后由 美夜赤月 于 2026-4-16 00:05 编辑
易语言的 变体.清除 ()
其实就是调用了 VariantClear 然后再 VariantInit 。
.版本 2
.支持库 spec
.子程序 释放变体
.参数 变体指针, 整数型
.局部变量 头地址, 整数型
.局部变量 指针地址, 整数型
.局部变量 数组长度, 整数型
.局部变量 pData, 整数型
.局部变量 i, 整数型
.局部变量 pBstr, 整数型
头地址 = 指针到整数 (变体指针)
指针地址 = 指针到整数 (头地址 + 8)
数组长度 = 指针到整数 (指针地址 + 16)
pData = 指针到整数 (指针地址 + 12)
SetOaNoCache ()
调试输出 (取十六进制文本 (指针地址), 取十六进制文本 (指针地址 + 8), 取十六进制文本 (指针地址 + 16), 数组长度, 取十六进制文本 (pData))
.计次循环首 (数组长度, i)
pBstr = 指针到整数 (pData + (i - 1) × 4)
.如果真 (pBstr ≠ 0)
RtlFillMemory (pBstr, 10, 0)
SysFreeString (pBstr)
写到内存 (0, pData + (i - 1) × 4, 4)
.如果真结束
.计次循环尾 ()
SafeArrayDestroy (指针地址)
RtlFillMemory (头地址, 16, 0)
SetProcessWorkingSetSize (-1, -1, -1)
试试看这个代码? |
|