VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 2521|回复: 5

[讨论] 用指针引用窗口属性,发现个问题

[复制链接]
发表于 2015-10-25 09:32:21 | 显示全部楼层 |阅读模式
不同窗体的窗体句柄使用同一个地址,但存放的好像还不是个函数地址,因为用CopyMemory 复制到的四个字节就能获取到句柄,怎么回事?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 发表于 2015-10-25 11:15:02 | 显示全部楼层
从外部访问窗体类的内部数据,走的是类提供的接口,返回值存放在栈区,算是临时数据,也就是说我不能靠计算窗体类的每个属性之间的偏移值,枚举所有相关的信息?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-25 11:31:09 | 显示全部楼层
下面有个52个字节的偏移 不知道是干嘛的,但好像是个固定值,可以访问内部数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

我只知道偏移0是虚拟函数表  发表于 2015-10-26 16:41
回复 支持 反对

使用道具 举报

发表于 2015-10-25 17:26:59 | 显示全部楼层
我猜是因为VarPtr取到的是函数返回值的地址。换句话说,当VarPtr的时候,那个函数已经被执行了,你取到的是存放返回值的位置。
别以为直接用Form1.hwnd看起来不是函数调用就一定不会调用函数。甚至你自己也可以定义这样的属性(Property Get/Let)。

很久没用过VB了,以上纯属猜测,仅供参考。
回复 支持 反对

使用道具 举报

发表于 2015-10-26 09:22:53 | 显示全部楼层
还窗体指针。。。。明明取到的就是个临时变量的地址和窗体有毛关系。。。
回复 支持 反对

使用道具 举报

发表于 2015-10-28 10:34:41 | 显示全部楼层
Yang201511 发表于 2015-10-25 11:31
下面有个52个字节的偏移 不知道是干嘛的,但好像是个固定值,可以访问内部数据

加点方法什么的,反汇编一下?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-6-30 17:58

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表