Mem函数(0分)

  • 主题发起人 主题发起人 ChengDi
  • 开始时间 开始时间
什么意思?
 
完整的问题是:
Delphi3.0 中有相当与Delphi2.0 中Mem函数的函数或其他什么吗???
 
Delphi2.0 中Mem函数的函数有什么功能?
 
在delphi 1.0中,Mem是取得内存中某一BYTE的值,相应的还有MemW等,它是根据段
地址和偏移地址来获得内存某一位置的值,delphi 2.0应该也是这样的吧.只是奇怪在
delphi 2.0,为何还有该函数,因为win32都没有段和偏移了啊?
delphi 3.0好象没有类似的函数了,因为一个指针可以从头指到尾了,没有64k的限制
了,不需要考虑段地址了,或者直接用嵌入汇编代码.
 
通过ptr(整数)可取得地址
 
var
p: pchar;
b: byte;
w: word;
i: integer;
begin
p:=ptr(SOME_SPECIAL_ADDRESS_AS_INTEGER);
b:=byte(p^);
w:=word(p^);
i:=integer(p^);
....
end;
 
哎,这个问题只值0分!
mem[],是一个虚数组,用来取相应内存地址的数据。
而在win32中,内存是线性的。这个pointer是一个Integer类型值,
你可以象一个数组下标一样去修改一个指针,就能取相应的数据了。
例:
var p : pointer;
begin
p := pointer(10);
p := Pointer(Integer(p)+100);
end;

这样,还要mem[]何用呢?
 
接受答案了.
 
后退
顶部