要调用一个delphi写的DLL,DLL里的函数说明是这样的:
1、delphi函数原型
function MoveReadRecord(nPort : Integer;pointerReaderData : PReaderDataOfOnePack) : Integer;stdcall;
2、参数说明:nPort:要操作的串口。
          pointerReaderData:指向ReaderDataOfOnePack结构体的指针。
ReaderDataOfOnePack结构体定义:
  ReaderDataOfOnePack = Record
    nRecordType : Integer;   //记录类型,暂时可以不考虑
    nModemId : Integer;   //通讯座号
    nModemRecordId : Array[1..12] of Integer;   //通讯座中记录编号
    nReaderId : Integer;   //巡检器号
    nReaderRecordId : Array[1..12] of Integer;   //在巡检器中的记录编号
    nRecordCount : Integer;    //记录数,就是本次读取得到的记录的数量。
    byteFailCount : Byte;    //失败次数,就是本次读取有错记录的条数
    charCardNo : Array[1..12] of Array[1..21] of Char;  //卡号,一个记录的卡号占一维,最多12条记录的卡号。
    timeTemp : Array[1..12] of TDateTime;   //记录刷卡时间,最多12条记录的时间。
  end;我调用一直都不对,是传这个结构体的指针有问题,不知该怎么写,下面是我写的一些代码,我今天可是第一天用delphi,犯低级错误可别笑话我:)type ReaderDataOfOnePack = Record
    nRecordType : Integer; 
    nModemId : Integer; 
    nModemRecordId : Array[1..12] of Integer;  
    nReaderId : Integer;   
    nReaderRecordId : Array[1..12] of Integer;  
    nRecordCount : Integer;   
    byteFailCount : Byte; 
    charCardNo : Array[1..12] of Array[1..21] of Char; 
    timeTemp : Array[1..RecordCountOfOnePack] of TDateTime;
end;pointerReaderData:ReaderDataOfOnePack;    pointerReaderData.nRecordType:=0;
    pointerReaderData.nModemId:=0;
    for i:=1 to RecordCountOfOnePack do
      pointerReaderData.nModemRecordId[i]:=0;
    pointerReaderData.nRecordCount:=0;
    pointerReaderData.byteFailCount:=0;
    for i:=1 to RecordCountOfOnePack do
    begin
      for j:=1 to 21 do
       pointerReaderData.charCardNo[j][i]:='0';
    end;
    for i:=1 to RecordCountOfOnePack do
      pointerReaderData.timeTemp[i]:=2005-7-4;MoveReadRecord(port,pointerReaderData);//到这里就错了,请各位叔叔阿姨帮帮忙