メモリ操作についてですが、同じ内容のデータを頻繁に書き込む場合、
すでに書き込んだメモリアドレスから新しい領域に転写することは
可能なのでしょうか?
たとえば、
CopyMemory(Answer+MovePoint, Answer+StartPoint, nSize);
のように同じメモリ領域同士で転写したいのですがうまくいきません。
Delphiをはじめて1ヶ月程度なのでメモリ操作に関して経験が乏しいため
思い切って書き込ませていただきました。
開発環境はDelphi 7 です。ヘルプを見てもCopyMemoryについて
記述がありませんでした。よろしくお願いします。
> ヘルプを見てもCopyMemoryについて記述がありませんでした。
API ですから、それ用のヘルプをみるか、MSDN をみてください。
普通は、Delphi で基本的なメモリ操作をするときは、TMemoryStream を使います。
var
S, D: array [0..10] of Byte;
Size: Integer;
begin
Size := SizeOf(D[0]) * Length(D);
FillChar(S[0], Size, $FF);
CopyMemory(@D[0], @S[0], Size);
end;
VCL のソースでは System.Move を使っていることが多いようです。
System.Move(S[0], D[0], Size);
ツイート | ![]() |