デルファイのpacked record
〜TByteDynArray
をコピーする必要があります。デルファイ(10シアトル)のパックドレコードをTByteDynArrayにコピー
PMyRec = ^TMyRec;
TMyRec = packed record
Header: THeaderRec;
Timestamp: TTimeStamp; // time of event
PLoc: TLocationRec;
A: word;
end;
以下は、そのためのコードスニペットです。
xxx: TByteDynArray;
m_arr : TMyRec;
SetLength(xxx,sizeof(TMyRec));
offset := offset + sizeof(THeaderRec);
System.Move(xxx[offset], m_arr.Timestamp ,sizeof(TTimeStamp));
offset := offset + sizeof(TTimeStamp);
System.Move(xxx[offset], m_arr.PLoc,sizeof(TLocationRec));
これはどういうわけか、正しくコピーしていないようです。私が何か間違っていると誰かが指摘できますか?あなたはバイト配列を TOからレコードををコピーするために欠けている場合は
をそれはあなたが実際に何をしようとして不明です。あなたは何を達成しようとしていますか?最も単純な方法は、レコードをメモリの線形ブロックとして直接アレイに移動することですが、そのソリューションが機能するかどうかはあなたの意図がはっきりしないので分かりません。 –