1

我想从

Source : Array[0..500] of Byte;

在哪里

c : integer; // Start Point

v : LongInt;

Move(Source[c], v, 4);

只给我 1 个字节。我的错在哪里?

再次感谢。

4

2 回答 2

5

这个来源工作得很好。c但是,如果只有第一个字节(索引处的那个)包含除 之外的值,它可能看起来只返回一个字节0

Sertac Akyuz 已经提出了这种替代方案,也可以正常工作:

v := PLongInt(@Source[c])^;
于 2012-11-30T00:37:15.937 回答
2

我怀疑移动失败了:

试试这个代码:

procedure TForm1.Button1Click(Sender: TObject);
var
  source: array[0..500] of Byte;
  C: Integer;
  V: LongInt;
begin
  source[0] := $55;
  source[1] := $55;
  source[2] := $55;
  source[3] := $55;
  C := 0;
  Move(Source[C], V, SizeOf(V));
  ShowMessage(IntToStr(V));
end;

您将在消息中看到数字 1431655765 ($55555555)。

于 2012-11-30T00:39:04.603 回答