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

sxhzy123 2014-03-31 02:30:10
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 签名的调用约定和参数与非托管的目标签名是否匹配。”

本人猜测是二维数组参数传递问题,希望有路过的大神不吝赐教,不甚感激。
...全文
192 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我确实很懒 2014-03-31
  • 打赏
  • 举报
回复
这个鸟问题也好意思拿出来问?
sxhzy123 2014-03-31
  • 打赏
  • 举报
回复
该问题已经解决,传递参数关键字问题。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧