怎么取得内存地址中的值? 我获取了一个程序中某个属性的内存地址,那么怎么获取该地址的值,在我的程序中显示出来? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 获取该地址的值----------------一个地址,它可以是一个字节的数据,也可以是数个字节的数据,在内存中,这些数据是二进制的,可以解释成字符、字符串、整型、浮点、对象......所以说,指针是有类型的,只有明确了指针的类型,指针指向的数据对我们才有意义。下面演示用Byte指针获取一个地址的一字节数据。你真正需要的是最末两行代码,其他代码只是为了帮你验证。procedure TForm1.Button1Click(Sender: TObject);var P : ^Byte; //声明一个指向字节的指针begin P := @Button1; //因为我不知你已知的地址值是多少,所以用这个按钮的地址代替 Edit1.Text := Format('%x',[integer(P)]);//把按钮的地址显示到Edit中去备用 ShowMessage(format('%x',[integer(P^)]));//先看一下P指向的字节的值,十六进制 integer(P) := StrToInt('$' + Trim(Edit1.text));//用Edit保存的地址值重新给P赋值 ShowMessage(format('%x',[integer(P^)]));//验证一下P重赋值后是否目标仍相同 { 结果是:相同。也就是说,integer(P) := $D51E68; 这样的赋值,正是给指针赋值 于是,你所需要的正是integer(P) := 你已知的地址值; 这句,以及用Format的输出 }end;至于你说的“获取了一个程序中某个属性的内存地址”,我不清楚Windows是否会允许你去读它(更不用说写它了) lz可以这样做,首先用OpenProcess函数打开你要读的进程,然后用ReadProcessMemory去读指定地址就可以了,这些都是WINDOWS自带函数!我以前写的一个程序用过没问题的! 【感谢贴】新官上任,散分(1) 用QUICKREPORT做过开发报表的朋友来看看 请教关于用wise打包安装的问题 在下从来没有接触过delphi,给me一些经验好吗????!!! 如何将图片插入Excel中 看CSDN里delphi这块的发贴都很少,CSND会不会取消DELPHI这个版块呀? 怎么在d7里添加fastnet控件,他对应的bpl文件是那一个???????? modelmaker6这东西是做什么的,那位前辈知道 关于图表 如何实现全文检索~~!!! 列赋值的问题 delphi编绎时会产生obj后缀,我想是c++builder产生的吧,对不对
----------------
一个地址,它可以是一个字节的数据,也可以是数个字节的数据,在内存中,这些数据是二进制的,可以解释成字符、字符串、整型、浮点、对象......所以说,指针是有类型的,只有明确了指针的类型,指针指向的数据对我们才有意义。下面演示用Byte指针获取一个地址的一字节数据。你真正需要的是最末两行代码,其他代码只是为了帮你验证。procedure TForm1.Button1Click(Sender: TObject);
var
P : ^Byte; //声明一个指向字节的指针
begin
P := @Button1; //因为我不知你已知的地址值是多少,所以用这个按钮的地址代替
Edit1.Text := Format('%x',[integer(P)]);//把按钮的地址显示到Edit中去备用
ShowMessage(format('%x',[integer(P^)]));//先看一下P指向的字节的值,十六进制
integer(P) := StrToInt('$' + Trim(Edit1.text));//用Edit保存的地址值重新给P赋值
ShowMessage(format('%x',[integer(P^)]));//验证一下P重赋值后是否目标仍相同
{ 结果是:相同。也就是说,integer(P) := $D51E68; 这样的赋值,正是给指针赋值
于是,你所需要的正是integer(P) := 你已知的地址值; 这句,以及用Format的输出 }
end;至于你说的“获取了一个程序中某个属性的内存地址”,我不清楚Windows是否会允许你去读它(更不用说写它了)