VBGood网站全文搜索 Google

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

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 7292|回复: 18

[求助] 请教下,vb如何修改变量地址?

[复制链接]
发表于 2012-11-5 12:33:58 | 显示全部楼层 |阅读模式
比如我定义2个long,
Dim a as long
Dim p as long
怎么把p的地址设成a的?
即a的值改变,p也会改变?
发表于 2012-11-5 12:59:21 | 显示全部楼层
p=a ;

把a的??附值?p不就好了??
回复 支持 反对

使用道具 举报

发表于 2012-11-5 13:15:54 | 显示全部楼层
不可能修改,局部变量总是固定在堆栈的某个偏移地址,这个在编译时就已经确定
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-5 13:26:46 | 显示全部楼层
h907308901 发表于 2012-11-5 13:15
不可能修改,局部变量总是固定在堆栈的某个偏移地址,这个在编译时就已经确定

只是举个例子,要是全局变量呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-5 13:27:43 | 显示全部楼层
ctjh900801 发表于 2012-11-5 12:59
p=a ;

把a的??附值?p不就好了??

这只是个例子。。。我要从DLL里取值,那个值是会随时变化的.
回复 支持 反对

使用道具 举报

发表于 2012-11-5 13:30:09 | 显示全部楼层
bxc1995 发表于 2012-11-5 13:26
只是举个例子,要是全局变量呢

全局变量则固定在程序的某个绝对地址中(有些变量如变长字符串、变长数组、COM对象无论全局还是局部,都是动态申请,这些东西可能可以修改地址,但修改起来很猥琐,即使修改成功也可能崩溃)
回复 支持 反对

使用道具 举报

发表于 2012-11-5 14:58:07 | 显示全部楼层
我觉得不行,编译的时候会把变量名替换成地址,除非你修改编译器
回复 支持 反对

使用道具 举报

发表于 2012-11-5 15:02:30 | 显示全部楼层
long的话我认为应该是可以的

全局变量编译后用ce去查找基址,然后你dll里的东东直接去对应改基址的那个就行了
回复 支持 反对

使用道具 举报

发表于 2012-11-5 17:48:12 | 显示全部楼层
同意七楼 。。编译的时候每个变量名都转换成一个地址  除非在编译的时候修改。
回复 支持 反对

使用道具 举报

发表于 2012-11-6 06:11:43 | 显示全部楼层
Private sub A1()
Dim a as long
Call AAA(A)
end sub

private sub A2(P as long)
......
end sub

OK...a的值改变,p也会改变~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2022-7-4 22:43

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