一个取指针字符的问题(100分)

  • 主题发起人 主题发起人 leeeeleeee
  • 开始时间 开始时间
L

leeeeleeee

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]例如我要取$12345开始的文字
1 var p:pointer
2 pc:pchar;
3 begin
4 p:=ptr($12345);
5 pc:=pchar(p);
6 caption:=string(pc);
--运行第5句win98下通过,nt下出错警告,why?
有没有其他方法?
 
你沒有讀這個地址的權利
 
什么权利?如何获得?贿赂吗?
 
我在delphi7和windows XP下调试通过,没有问题,用你原来的代码是不行
如果用pchar转换一下会在label1上显示乱码
var
p:pointer;
cc:string;
begin
cc:='程泰翔';
p:=@cc;
Label1.Caption:=string(p^);
end;
 
你的 pc:pchar;没有被分配空间,是个空指针[:D]
 
我的问题是只知道地址而显示字符串
乱码是因为地址当前$12345地址就这些内容(到结束符止)
这个问题不是所以nt系统都不可以,所以奇怪。
 
这是强制转换,好像不用再分配内存
再说,分配内存我也试过,无效。
 
如果只知道一个地址,并且肯定它是 PChar 的起始地址,要获得全部字符串,你需要循环
读取下一个地址的字符,直到取到的字符为 $0 为止。
 
我的实例就可以完成读字符操作,只是有些系统不可以
 
算了,这问题很难吗?
 
NT下不允许这样读地址.
 
我也知道,但怎么解决
 
ok!皆大欢喜吧
 
后退
顶部