日期:2014-05-19  浏览次数:21062 次

读卡器读卡器读卡器读卡器读卡器读卡器读卡器读卡器读卡器读卡器
读卡器提供的接口函数中有如下两个,它们的功能是把密码装到读卡器中

int   rf_load_key(int   icdev,unsigned   char   _Mode,unsigned   char   _SecNr,unsigned   char   *_NKey);

功   能:将密码装入读写模块RAM中

参   数:icdev:通讯设备标识符

              _Mode:装入密码模式,同密码验证模式mode_auth

              _SecNr:扇区号(M1卡:0~15;     ML卡:0)

              _Nkey:写入读写器中的卡密码

返   回:成功则返回   0

      例://key   A   and   key   B

              unsigned   char   tk[6]={0xa0,0xa1,0xa2,0xa3,0xa4,0xa5};

              /*   装入1扇区的0套A密码   */

              if((rf_load_key(icdev,0,1,tk))!=0)

              {

                            printf( "Load   key   error! ");

                            rf_exit(icdev)

                            exit(1);

              }
---------------------------


int   rf_load_key_hex(int   icdev,unsigned   char   _Mode,unsigned   char   _SecNr,char   *_NKey);

功   能:向读写器中装入十六进制密码

参   数:icdev:通讯设备标识符

              _Mode:密码验证模式

              _SecNr:扇区号(0~15)

              _Nkey:写入读写器中的卡密码

返   回:成功则返回   0

      例:/*     装入1扇区的A密码|0套     */

              if((rf_load_key_Hex(icdev,0,1, "a0a1a2a3a4a5 "))!=0)

              {           printf( "Load   key   error! ");

                          rf_exit(icdev);

                          exit(1);

              }

现在知道卡密码是12个F,用厂商自带的演示程序读出的,不知是16进制还是字符串,现在我要调用这两个函数中的一个,问他们在C#中应该怎么声明,参数类型应该转变成什么样的.最关心最后一个参数.因为前三个我试的应该没问题

我现在是这样做的
声明时把最后一个参数声明成ref   byte[]型的.
然后调用时这样的
byte[]   bt   =   new   byte[]{0xf,0xf........一共12个}

rf_load_key_hex(......   ,bt);
可是不好用...返回值不为0,期待高手....................................

------解决方案--------------------
声明成StringBuilder类型