需求背景
C、C++和.net语言都提供了计算变量内存大小的函数即SizeOf,该函数能正确返回数据类型占用的内存字节数,但是VBA、VB6.0没有直接提供。特别在调用Windows API的时候,该功能显示得特别重要。
实现思路
VBA、VB6.0虽然没有提供指针运算符,但提供了几个获取变量指针(内存地址)的值的函数。
public function VarPtr(ptr as Any) as longPtr
'获取变量自身的内存地址
public function StrPtr(ptr as Any) as longPtr
'获取字符串值的内存地址
public function ObjPtr

本文介绍了在VBA和VB6.0中如何计算数据类型占用的内存大小,由于这两个环境没有内置SizeOf函数,作者通过分析VBA的内存分布和一维数组的特性,提出了一种定义一维数组来间接获取内存占用的方法,以方便调用Windows API。文章最后邀请对此感兴趣的读者加入交流群进一步探讨。
最低0.47元/天 解锁文章
2784

被折叠的 条评论
为什么被折叠?



