关于实参和行参的问题!(50分)

  • 主题发起人 主题发起人 chenxiu
  • 开始时间 开始时间
C

chenxiu

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TCWDSP.BwCoef(Type_: OleVariant
Order: OleVariant
SampleFreq: OleVariant
CutoffFreqLow: OleVariant
CutoffFreqHigh: OleVariant
na:OleVariant
nb: OleVariant
var a: OleVariant
var b: OleVariant);
{a As Variant
[Output] One-dimensional array that contains the reverse coefficients for the filter.
b As Variant
[Output] One-dimensional array that contains the forward coefficients for the filter.}
上面的这句是BwCoef函数在其函数库的delphi中的说明;
我程序中要用到的关键参数说明如下
type
MyArr=array of real;
var a,b:Myarr;//MyArr是我自己定义的一个数组类
但是我程序中调用这个函数时CWDSP1.BwCoef((FilterRange-1),rank,Fs,Fp,BH,na,nb,a,b);
出错:Types of actual and formal var parameters must be identical.我的a,b明明前面已经加了Var了啊(确定是a和b这两个参数出错) 怎么还是说行参和实参对不上啊?谢谢指点啊;
我发现某些函数参数在其库中前面没有var的话,我调用都没问题,但是一旦某些函数比如上面这个函数的行参a和b前面有var,那么调用就是出现上面的这个error!
 
怎么都没有人理我啊!各位高手请指点一下小弟啊!在线等待啊!
非常感谢!
 
加了 var 说明是变参,变参要求形参和实参的类型一致,而 MyArr 类型和 OleVariant 类型不同,所以不行,可以这样试试(未验证,猜的 :D ):

var
a, b: MyArr;
oa, ob: OleVariant;
begin
...
oa := a;
ob := b;
CWDSP1.BwCoef((FilterRange-1),rank,Fs,Fp,BH,na,nb,oa,ob);
...
end;
 
谢谢您的回答,问题已解决,现在给分!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部