DWORD?(50分)

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

klsyk

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中如何对DWORD类型的各个字节进行访问
 
类型名()就是强制类型转换函数 D:DWORD;
(pbyte(@D))^
(pbyte(dowrd(@D)+1))^
(pbyte(dword(@D)+2))^
(pbyte(dword(@D)+3))^
 
{$A-}
var
DW: DWord;
BR: array [0..3] of byte absolute DW
{$A+}
begin
BR[0] := 1
//DW的最低字节
BR[3] := 2
//DW的最高字节
end;
 
有无函数比如:c++中lowbyte,hibyte,lowword,hiword
 
lowbyte,hibyte => lo,hi
 
谢谢大家,更要谢谢bjdribllec,但dword是4个字节的,请问有与loword,hiword功能相似的函数么?
 
好象只有lo, hi了, 不过即使有loword,hiword也不管用, 难道想
用hi(lowword(DW)) 这样访问中间的字节? 还不如用刘麻子的方法,
或者用我的声明absolute变量的方法
 
jackchin,我是一个新手,倾解释一下“BR: array [0..3] of byte absolute DW {$A-} {$A+}”,谢谢!

 
谢谢!I know function hi and lo before!
 
DW: DWord;
BR: array [0..3] of byte absolute DW
这样声明BR, BR的地址就和DW一样, BR[0]其实就是DW的低位
{A+}, {A-}是编译指令, 防止字节对齐,(这里好象不需要, 这样作为了保险起见)
 
后退
顶部