delphi调用C写的dll,无法调用多数组参数的函数

markov_max markov_max 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
C实现的dll函数
extern "C" void __declspec(dllexport) Init(int *tx, double *ty)
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
for(int i=0;i<5;i++)
{
tx[i] = 1+i;
ty[i] = 1.1+i;
}
}

delphi声明
procedure Init_1(x: array of integer; y: array of double);cdecl;
procedure Init_1;external '111.DLL' name 'Init';

delphi调用procedure Form1.ButtonClick(Sender: TObjec)
var
tx: array [0..4] of integer;
ty: array [0..4] of double;
begin
Init_1(tx, ty);
end;

问题:调用 Init_1报错。dll的Init函数参数去掉一个,然后delphi相应调用1个参数的Init_1就正确。怎么回事?
...全文
评论 6
收藏 已收藏
分享
返回顶部