//读取第一条纪录
[DllImport("oComp2p.dll",EntryPoint="ReadRecord",CharSet=CharSet.Auto,CallingConvention=CallingConvention.Cdecl)]
public static extern int ReadRecord(string TVA,string RVA,string CardTime,string CardNo,string KeyNo,string ACStatus,int CardType);
public string[] ReadFirst(string TVA,string RVA,string CardTime,string CardNo,string KeyNo,string ACStatus,int CardType) //这儿是返回对象呢 还是返回是否读取成功  返回对象的话还要写一个类
{
string[] str = new string[8];
if(ReadNumber(TVA,RVA)>0)
{
//读取第一条新数据
if(ReadRecord(TVA,RVA,CardTime,CardNo,KeyNo,ACStatus,CardType)==1)
{
str[0]=TVA;
str[1] = RVA;
str[2] = CardTime;
str[3] = CardNo;
str[4] = KeyNo;
str[5] = ACStatus;
str[6] = CardType.ToString();
str[7] = "成功取出第一条数据!";
return str;
}
else
{
str[7] = string.Empty;
return str;
}
}
else
{
str[7]="没有新纪录!";
return str;
}
那些参数 传进去后方法执行完成 取出来就是读出来的数据但是ReadRecord 这个方法本来只能返回 1,0,-1,-2但是 他直接给我返回161742849,也不报错。我不知道怎么回事   高手们帮我解决下  小弟先谢谢了!
在线等。 前台调用是直接传的参数

解决方案 »

  1.   

    那个方法的说明是这样的4、ReadRecord(TVA,RVA,CardTime,CardNo,KeyNo,ACStatus,CardType)
       功    能:读第一条新记录
       入口参数:TVA:目标机器的虚拟地址(见Notes5)
                 RVA:返回机器的虚拟地址(见Notes6)
                 CardType:卡号类型,整型(见Notes3)
       返    回:=-1,-2:失败;
         = 0:成功,无记录;
                 = 1:成功,刷卡记录
                            CardTime:日期时间(字符串型,格式为:“年-月-日 时:分:秒”)
                            CardNo:  卡号(字符串型,见Notes3)
                            KeyNo :  功能键("F1","F2","F3","F4")
                            ACStatus:状态(0:未登记卡,1:已登记卡,不开门,2:已登记卡,开门)
                 = 129:成功,通过权限卡增加白名单记录
                            CardTime:日期时间(字符串型,格式为:“年-月-日 时:分:秒”)
                            CardNo:  卡号(字符串型,见Notes3)
                            KeyNo :  工号
                            ACStatus:门禁级别
                 = 130:成功,通过权限卡删除白名单记录
                            CardTime:日期时间(字符串型,格式为:“年-月-日 时:分:秒”)
                            CardNo:  卡号(字符串型,见Notes3)         记录格式:
             刷卡记录:门号(0-16)、秒分时日月年、卡号(4)、功能键(1)
             增加新卡:81H、         秒分时日月年、卡号(4)、工号(3)、级别(1)
             删除卡:  82H、