delphi 如何使用TByteDynArray 类型,有一个函数传入的是TByteDynArray 类型。我不懂如何使用这个类型。麻烦哪位大哥能帮我吧下面的C#语法转成delphi语法,谢谢C#的语法 NNMZDData data = new NNMZDData();
data.CardNo = 123;
data.OwnerName = new Byte[12];
string s = "张三";
Array.Copy(Encoding.Default.GetBytes(s), data.OwnerName, Encoding.Default.GetByteCount(s));
data.PlateNo = new byte[12];
byte[] plateNo = Encoding.Default.GetBytes("粤A12345");
Array.Copy(plateNo, data.PlateNo, plateNo.Length);
data.ReaderName = new byte[24];
s = "一号岗亭入口";
Array.Copy(Encoding.Default.GetBytes(s), data.ReaderName, Encoding.Default.GetByteCount(s));
data.ReaderNo = 1;
byte[] dData = Form1.StructToBytes(data);
service.UpBroke(dData); //在这里传入UpBroke函数就是TByteDynArray 类型麻烦告诉帮帮忙,谢谢
data.CardNo = 123;
data.OwnerName = new Byte[12];
string s = "张三";
Array.Copy(Encoding.Default.GetBytes(s), data.OwnerName, Encoding.Default.GetByteCount(s));
data.PlateNo = new byte[12];
byte[] plateNo = Encoding.Default.GetBytes("粤A12345");
Array.Copy(plateNo, data.PlateNo, plateNo.Length);
data.ReaderName = new byte[24];
s = "一号岗亭入口";
Array.Copy(Encoding.Default.GetBytes(s), data.ReaderName, Encoding.Default.GetByteCount(s));
data.ReaderNo = 1;
byte[] dData = Form1.StructToBytes(data);
service.UpBroke(dData); //在这里传入UpBroke函数就是TByteDynArray 类型麻烦告诉帮帮忙,谢谢
从这一句可以看到,只是一个字接数组.
DELPHI接收时,如果是用函数,在参数里可以定义成
function f(AData: array of Byte);
begin
for I := Low(AData) to High(AData) do //取得数组的上下界
end;
麻烦帮我把那段C#代码转成delphi其实也就是如何给 TByteDynArray 类型赋值,麻烦给个简单的例子,万分感谢
public struct NNMZDData
{
public System.Int32 CardNo;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 12)]
public System.Byte[] OwnerName;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 12)]
public System.Byte[] PlateNo;
public System.Int32 ReaderNo;
[MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.U1, SizeConst = 24)]
public System.Byte[] ReaderName;
}