delphi 数组复制利用CopyMemory 最为完美

Posted marklove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 数组复制利用CopyMemory 最为完美相关的知识,希望对你有一定的参考价值。

在各网站的文章里面,见复制数据的方法中,有move的,有system.copy的,而要实际应用中,这两种方法,并不是很完美,会遇到一些问题,比如copy在记录里面的复制时,编译都过不去,而CopyMemory的功能,就相当强大.

要注意如果不是byte时,长度可能需要使用sizeof来参与计算

Buff,BuffCmdCrc16:array of Byte

SetLength(BuffCmdCrc16, 10);

一、复制10个byte 

CopyMemory(@BuffCmdCrc16[0],@Buff[0],10); 

 

从第11个 byte位追加,取数从第5个起,取8个byte 的长度。

CopyMemory(@BuffCmdCrc16[10],@Buff[5],8);

 

定义在Winapi.Windows中:

procedure CopyMemory(Destination: Pointer; Source: Pointer; Length: NativeUInt);
begin
Move(Source^, Destination^, Length);
end;

从定义看,也是调用了move,但是直接用move,可没这么顺心顺手




以上是关于delphi 数组复制利用CopyMemory 最为完美的主要内容,如果未能解决你的问题,请参考以下文章

VB 中 copymemory的有关问题

将 ansichar 数组复制到 char delphi 10.2 数组

delphi的错误该怎么改(急>_<!!)

在delphi中从数组数据中播放声音的最简单方法是啥

Delphi - 相当于 C# 的三元运算符? [复制]

delphi中枚举类型和子界,数组,集合的详解以及类型说明