C#调用delphi生成的dll文件,传递二维数组有关问题求大神解

C#调用delphi生成的dll文件,传递二维数组问题求大神解.
Delphi 方面: 
1、结构体定义:
type
    PDay_Period=^TDay_Period;
    TDay_Period=  record
    Start_time : array [0..15,0..1] of BYTE;//
    End_time : array [0..15,0..1] of BYTE;  //
end;

2、方法定义:
function  YsnNet_SetWeekPower_Group( buf:PDay_Period);

3、C#调用:
Day_Period day_Period = new Day_Period();
day_Period.Start_time=new byte[16,2];
day_Period.Start_time[0,0] = 0x08;
day_Period.Start_time[0,1] = 0x30;
day_Period.End_time = new byte[16, 2];
day_Period.End_time[0,0]=0x17;
day_Period.End_time[0, 1] = 0x30;

ADKNetTools.SetWeekPowerGroup(day_Period);

这样调用失败,提示错误:“对 PInvoke 函数“WindowsFormsApplication1!Test.ADKNetTools::SetWeekPowerGroup”的调用导致堆栈不对称。原因可能是托管的 PInvoke 签名与非托管的目标签名不匹配。请检查 PInvoke 签名的调用约定和参数与非托管的目标签名是否匹配。”

本人猜测是二维数组参数传递问题,希望有路过的大神不吝赐教,不甚感激。

------解决方案--------------------
这个鸟问题也好意思拿出来问?