M
moweiming
Unregistered / Unconfirmed
GUEST, unregistred user!
本人最近用delphi开发DLL,用delphi测试均无问题,但在提交给同事,用C调用时出现问题。
一般的dll函数(没有参数传递,或简单参数值传递的都没有问题,但是如果传递数组时就老是错误)
dll函数的原型: function myfunc(tbuff:array of single
tlen:integer):integer;
函数功能是处理一个浮点数类型的数组,tlen指明了数组的个数,结果。
在delphi程序中调用方法:
var
abuff:array[0..99] of single;
alen:integer;
....
result:=myfunc(abuff,10);
result:=myfunc(abuff,20);
调用结果没问题。
但是在C中这个数组该如何传递?
float abuf[100];
....
result=myfunc(&abuf[0],10);
result=myfunc(abuf,10);
这样调用均导致系统出错。
怀疑还是参数指针传递的问题!那位高手能帮个忙啊,不胜感激!
一般的dll函数(没有参数传递,或简单参数值传递的都没有问题,但是如果传递数组时就老是错误)
dll函数的原型: function myfunc(tbuff:array of single
tlen:integer):integer;
函数功能是处理一个浮点数类型的数组,tlen指明了数组的个数,结果。
在delphi程序中调用方法:
var
abuff:array[0..99] of single;
alen:integer;
....
result:=myfunc(abuff,10);
result:=myfunc(abuff,20);
调用结果没问题。
但是在C中这个数组该如何传递?
float abuf[100];
....
result=myfunc(&abuf[0],10);
result=myfunc(abuf,10);
这样调用均导致系统出错。
怀疑还是参数指针传递的问题!那位高手能帮个忙啊,不胜感激!