有關內存映射文件(mapviewoffile)的問題 (200分)

  • 主题发起人 主题发起人 kiely
  • 开始时间 开始时间
K

kiely

Unregistered / Unconfirmed
GUEST, unregistred user!
有一內存映射文件,設基址(mapbase)=$456789,偏移(offset)=$4321,在該處有字串'abcdefg',請教怎麼讀取?<br>在偏移(offset)=$14321處,有一整數4567,又該怎麼讀取?
 
用read 和 write
 
假如基址为p<br><br>var <br>&nbsp; &nbsp;s:string;<br>&nbsp; &nbsp;i:integer;<br>begin <br>&nbsp; &nbsp;move((P+$4321)^,s[1],Length('abcdefg'));<br>&nbsp; &nbsp;move((p+$14321)^,i,sizeof(i));<br>end;
 
MapBase: Pointer;<br>MapBase:=MapViewOfFile(...);<br>ShowMessage(PChar(Integer(MapBase)+$4321));<br>//如果字串是0结尾,可以这么做,不是0结尾,就直接根据已知情况选择字符串长度了<br>ShowMessage(InttoStr(PInteger(Integer(MapBase)+$14321)^));<br>
 
謝謝參與,給分!
 
后退
顶部