在delphi中调用dll函数了,有一个模块单独呈现的时候可以,但是放在那个大程序下运行的时候总是会提示错误:access violation at Ox0003……的,而且是地址溢出的原因,主界面代码如下:
var
  lp,rw,alphTa:double;
  Swb:double;
begin
  lp:=strtofloatDef(edtLp.text,0);
  rw:=strtofloatDef(edtrw.text,0);
  alphTa:=strtofloatDef(edtxwj.text,0);
  Swb_Calculate(lp,rw,alphTa,Swb);
  edtjt.text:=FloatTostr(Swb);
end;
其中,Swb_Calculate这个dll函数的代码如下:
 var
   rwD,C1,C2:Double;
begin
  try
    Result:=0;
    if (alphTa=0) or (alphTa=360) then
      begin
        C1:=0.16;
        C2:=2.675;
      end
    else if alphTa=180 then
      begin
        C1:=0.026;
        C2:=4.532;
      end
    else if alphTa=120 then
      begin
        C1:=6.6*Power(10,-3);
        C2:=5.32;
      end
    else if alphTa=90 then
      begin
        C1:=1.9*Power(10,-3);
        C2:=6.155;
      end
    else if alphTa=60 then
      begin
        C1:=3.0*Power(10,-4);
        C2:=7.509;
      end
    else if alphTa=45 then
      begin
        C1:=4.6*Power(10,-5);
        C2:=8.791;
      end;
    Swb:=0;
    rwD:=rw*(lp+rw);
    Swb:=C1*exp(C2*rwD);
    Result:=1;
  except  end;因为之前把这个模块单独列出来验证过,这个代码的语法没什么问题,但是在那个大程序里面总是找不出问题来,不管是运行还是调试,只要是计算,那个警告符就出来了,哎无语呀,对delphi不太熟悉,请各位大神帮帮忙啦……