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 类型麻烦告诉帮帮忙,谢谢

解决方案 »

  1.   

     byte[] dData = Form1.StructToBytes(data);
    从这一句可以看到,只是一个字接数组.
    DELPHI接收时,如果是用函数,在参数里可以定义成
    function f(AData: array of Byte);
    begin
      for I := Low(AData) to High(AData) do //取得数组的上下界
    end;
      

  2.   

    to chenzhuo
    麻烦帮我把那段C#代码转成delphi其实也就是如何给 TByteDynArray 类型赋值,麻烦给个简单的例子,万分感谢 
      

  3.   

    补充一下C# NNMZDData 定义
        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;
        }