VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: memobbq

delphi中longword的字节存放顺序问题

[复制链接]

2

主题

8

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
 楼主| 发表于 2020-6-6 10:15:01 | 显示全部楼层
非常感谢xclzc17 ( ) 的热心帮助,虽然没有帮我解决问题,但我真的很感激!!

转Delphi3个月了,总体上感觉delphi的程序员大多数很冷漠。 在delphi群里问问题无人问津,在verysource的基础类里问问题,也是人少的可怜。

为了发泄我心中的不满,我还是要忍不住骂一句,去他妈的verysource的delphi的基础类!! 俩斑竹早鸡巴换了吧!!

没办法自己写了个函数,不能再等了....
procedure TLT.Z_SerialLongWord(iValue:LongWord;SerialBuf:Pointer);  //将delphi的longword按右对齐序列化到缓冲区内  $1=00 00 00 01,而不是01 00 00 00(delphi默认的)
var
  desBuf:Array[0..3] of byte;
  tmpBuf:Array[0..3] of byte;
begin
  zeromemory(@desBuf,sizeof(tmpBuf));
  zeromemory(@tmpBuf,sizeof(tmpBuf));

  copymemory(@desBuf,@iValue,sizeof(iValue));
  tmpBuf[0]:=desBuf[3];
  tmpBuf[1]:=desBuf[2];
  tmpBuf[2]:=desBuf[1];
  tmpBuf[3]:=desBuf[0];

  copymemory(@desBuf,@tmpBuf,sizeof(tmpBuf));
  copymemory(SerialBuf,@desBuf,sizeof(desBuf));   
end;

  //3037142018=$b5071c02  存入缓冲区内: b5071c02  而不是 02 1c 07 b5  
  {  //调用示例:
  var
    iSourceNode:Longword;
    tmpBuf:Array[0..3] of Byte;
  begin
    iSourceNode:=$b5071c02;
    Lt.Z_SerialLongWord(iSourceNode,@tmpBuf);
  end;
  }
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表