サーバーに送信する必要があるバイトの配列を作成するために MemoryStream を使用しています。3 つの質問があります。
1)これよりもバイト配列を構築するためのより良い方法はありますか?
2) なぜこのコードはメモリ ストリームに偽物を書き込むのですか?
var
serial : word;
MS : TMemoryStream;
const
somebytes : array [0..1] of byte = ($72,$72);
...
begin
MS := TMemoryStream.Create();
try
MS.Write(somebytes[0],2);
serial := $3E6C;
MS.Write(serial,2);
finally
MS.Free;
end;
デバッガーを使用すると、ストリームに $3E6C ではなく $6F32 の値が追加されていることがわかります。
3) 電話したら
MS.Position := 2;
次に、PByte(MS.Memory)^ にアクセスします。ストリームの 3 番目のバイトではなく、最初のバイトを取得するのはなぜですか?