我没有学过delphi,但现在却需要用C#去调用一个delphi写的的DLL,还在传个结构体的指针,试了好多次,也不对,请高手帮我看看.这是DLL的唯一资料:
移动读取记录(一次最多读取RecordCountOfOnePack条记录)(表示上次读取成功,继续往下读。)
常量定义:
Const  RecordCountOfOnePack=12;
1、delphi函数原型
function MoveReadRecord(nPort : Integer;pointerReaderData : PReaderDataOfOnePack) : Integer;stdcall;
2、参数说明:nPort:要操作的串口。
          pointerReaderData:指向ReaderDataOfOnePack结构体的指针。
ReaderDataOfOnePack结构体定义:
  ReaderDataOfOnePack = Record
    nRecordType : Integer;   //记录类型,暂时可以不考虑
    nModemId : Integer;   //通讯座号
    nModemRecordId : Array[1..RecordCountOfOnePack] of Integer;   //通讯座中记录编号
    nReaderId : Integer;   //巡检器号
    nReaderRecordId : Array[1..RecordCountOfOnePack] of Integer;   //在巡检器中的记录编号
    nRecordCount : Integer;    //记录数,就是本次读取得到的记录的数量。
    byteFailCount : Byte;    //失败次数,就是本次读取有错记录的条数
    charCardNo : Array[1..RecordCountOfOnePack] of Array[1..21] of Char;  //卡号,一个记录的卡号占一维,最多RecordCountOfOnePack条记录的卡号。
    timeTemp : Array[1..RecordCountOfOnePack] of TDateTime;   //记录刷卡时间,最多RecordCountOfOnePack条记录的时间。
  end;
3、返回值:    1000:正常返回且读光了通讯座中的记录; 500:正常返回且通讯座中记录还没读完;  其它:通讯座状态号;    -1:失败;   -2;未知状态这一句没看明白是什么意思"charCardNo : Array[1..RecordCountOfOnePack] of Array[1..21] of Char; "在C#里这个struct该怎么写?又该怎样调用呢?