注册 登录
编程论坛 Delphi论坛

请教高手一个简单的数组问题,这里怎样定义、声明数组?

wtv 发布于 2013-06-14 12:50, 791 次点击
刚学delphi7,想试编一个被引用的dll的函数,求连续价格(是序列)5个的平均值。源码如下:
(一)dllfnc.dpr
library dllfnc;
uses
Unit1 in 'Unit1.pas';
{$E *.dll}
{$R *.RES}
exports
FNC1;
begin
end.
(二) unit1.pas
unit Unit1;
interface
uses
SysUtils,
Classes;
type
tagSTKDATA = packed record
m_fClose: single;  //价格
end;
tagCALCINFO = packed record
m_nNumData: integer;  //数据数量
m_pData: ^tagSTKDATA; //常规数据
m_pResultBuf: ^single; //结果缓冲区
end;
pTagCALCINFO = ^tagCALCINFO;
function FNC1(pData:pTagCALCINFO):integer;stdcall;export;
 
implementation
function FNC1(pData:pTagCALCINFO):integer;stdcall;export;
var
  f:single;
  i,j:integer;
begin
  for i:=1 to pData.m_nNumData do  
  if i>=5 then                         //由第5个开始
  begin
    f:=0;
    for j:=0 to 4 do                   //计算的数量是5个
    f:=f+pData.m_pData[i-j].m_fClose;  //累加
    pData.m_pResultBuf[i]:=f/5;        //平均
  end;
end;
end.

在f:=f+pData.m_pData[i-j]处、pData.m_pResultBuf[i]处,错误:Array type required(需要数组类型),请问怎样定义?把pm_pData=^m_pData、pm_pResultBuf=^m_pResultBuf加到type里也是错的
1 回复
#2
volte2013-06-18 15:36
pData.m_pData和pData.m_pResultBuf是record类型,你把他用成数组肯定报错!!!
1