问题描述
依时利读卡器二次开发Demo我要用C#读依时利的读卡器,给的是Delphi的Demo,想把它转成C#的,代码如下:publicstructTERTradeParam{publicstringIndexSectorPwdA;//="A0A1A2A3A4A5";publicstringConsumePwd;//="000000000000";publicstringChargePwd;//="111111111111";publicstringTACPwd;//="0123456789ABCDEF0123456789ABCDEF";publicintAuthType;//=2;publicintAPID;//=3;publicstringEnterpriseID;//="11223344";publicstringProvinceID;//="11223344";publicstringProvinceAID;//="Mifare1App";publicstringGroupAID;//="Mifare2App";publicstringEnterpriseAID;//="Mifare3App";publicintCardFormat;//=0;}[StructLayout(LayoutKind.Sequential,CharSet=CharSet.Auto)]publicstructTER690CardInfo{[MarshalAs(UnmanagedType.I4)]publicintCardNo;//卡号[MarshalAs(UnmanagedType.ByValArray,SizeConst=8)]publicchar[]CardName;//姓名[MarshalAs(UnmanagedType.U4)]publicInt32CardBalance;//卡余额(单位分)[MarshalAs(UnmanagedType.U4)]publicInt32ChargeTimes;//充值次数[MarshalAs(UnmanagedType.U8)]publicInt64OverPwd;//超额密码[MarshalAs(UnmanagedType.U4)]publicInt32DayMoney;//日累计[MarshalAs(UnmanagedType.U2)]publicInt16Period;//消费时段[MarshalAs(UnmanagedType.U2)]publicInt16PeriodCount;//时段次数[MarshalAs(UnmanagedType.U4)]publicInt32MonthDay;//消费月日[MarshalAs(UnmanagedType.U4)]publicInt32OrderGroup;//订餐分组(0-15组)[MarshalAs(UnmanagedType.U2)]publicInt16OrderMonth;//订餐月[MarshalAs(UnmanagedType.U2)]publicInt16OrderDay;//订餐日[MarshalAs(UnmanagedType.U2)]publicInt16OrderListType;//订餐表类型[MarshalAs(UnmanagedType.U2)]publicInt16CycleMealFlag;//重复消费标志[MarshalAs(UnmanagedType.ByValTStr,SizeConst=8)]publicstringOrderList;//订餐表[MarshalAs(UnmanagedType.U2)]publicInt16ReservedFlag;//保留,补贴批次[MarshalAs(UnmanagedType.U2)]publicInt16Privillege;//权限[MarshalAs(UnmanagedType.U8)]publicInt64EnterpriseID;//企业ID,按BCD格式存储}//读写参数[DllImport("ERTrans.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]publicstaticexternboolOpenReader(intCommStyle,intClockModel,intComPort,intBaudRate,TERTradeParamaParam);[DllImport("ERTrans.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)][return:MarshalAs(UnmanagedType.Bool)]publicstaticexternboolReadER690Card(intaSectorNo,stringPwdA,TER690CardInfoTER690CardInfo);[DllImport("ERTrans.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]publicstaticexternboolWriteER690Card(intaSectorNo,stringPwdA,TER690CardInfoTER690CardInfo);publicclasssttuct{publicstructaParam{publicstringIndexSectorPwdA;//="A0A1A2A3A4A5";publicstringConsumePwd;//="000000000000";publicstringChargePwd;//="111111111111";publicstringTACPwd;//="0123456789ABCDEF0123456789ABCDEF";publicintAuthType;//=2;publicintAPID;//=3;publicstringEnterpriseID;//="11223344";publicstringProvinceID;//="11223344";publicstringProvinceAID;//="Mifare1App";publicstringGroupAID;//="Mifare2App";publicstringEnterpriseAID;//="Mifare3App";publicintCardFormat;//=0;publicaParam(string_IndexSectorPwdA,string_ConsumePwd,string_ChargePwd,string_TACPwd,int_AuthType,int_APID,string_EnterpriseID,string_ProvinceID,string_ProvinceAID,string_GroupAID,string_EnterpriseAID,int_CardFormat){IndexSectorPwdA=_IndexSectorPwdA;ConsumePwd=_ConsumePwd;ChargePwd=_ChargePwd;TACPwd=_TACPwd;AuthType=_AuthType;APID=_APID;EnterpriseID=_EnterpriseID;ProvinceID=_ProvinceID;ProvinceAID=_ProvinceAID;GroupAID=_GroupAID;EnterpriseAID=_EnterpriseAID;CardFormat=_CardFormat;}}[DllImport("ERTrans.dll",CharSet=CharSet.Auto)]publicstaticexternboolOpenReader(intCommStyle,intClockModel,intComPort,intBaudRate);}privatevoid连接_Click(objectsender,EventArgse){TERTradeParamaParam=newTERTradeParam();if(OpenReader(3,906,0,0,aParam)){this.Text="连接成功。";}else{this.Text="连接失败!";}}TER690CardInfoER690CardInfo=newTER690CardInfo();privatevoid读取_Click(objectsender,EventArgse){try{//读取卡数据inti=int.Parse(this.textEdit1.Text.Trim());if(ReadER690Card(i,"FFFFFFFFFFFF",ER690CardInfo)){this.textEdit2.Text=ER690CardInfo.CardNo.ToString();//MessageBox.Show("连接成功!");}else{this.Text="读取失败!";//MessageBox.Show("读取失败!");}}catch(Exception){this.Text="失败";}}问题:红色代码报错请各位大神帮帮忙(分数本想多给,但只剩下这么多了)