服务与支持 Services
 
支持卡型
通讯方式
使用方式
常见问题
您的位置:首页服务与支持问题解答

Hex为后缀的函数说明

  •       字符的描述方法有多种,如字母‘A’,在ASCII表中,它的十进制表为65,十六进制表示方法为0x41,数字‘1’,它的十进制数表示为48,十六进制数表示为0x31。一个字符串是由一个个字符联接在一起组成字符串,如‘AB12’是一个字符串,一般使用十六进制表示这个字符串即将十六制的单个表示联在一起,即‘41423132’,当然也是一个字符串,但这个十六进制的字符串中只包含字符‘0’-‘9’和‘A’-‘F’。
    使用DCIC演示程序,可明显的看出,如图:

    下面就一个函数来说明一下:
    IC_Read(HANDLE idComDev,__int16 offset,__int16 len,unsigned char * databuffer);
             如卡内的地址0,开始的8个字符为:ABCD1234,程序代码如下:
             unsigned char buff[32];注意此处的缓冲区大小
    status=IC_Read(icdev,0,8,buffer);
             if(status==0)
                       ;读成功
    else
                       ;读失败
             如果以上代码读成功,则buffer中包含内容‘ABCD1234’
             但如果用IC_Read_Hex来读,则buffer中的内容为‘4142434431323334’
           
             再举一个核对密码的例子,一般说密码,如SLE4442,密码是‘B62307’,这是十六进制的表示方法,实际上为ACSII表中对应的字符,但可能不可识别,即不为数字字母也不为一些常见符号等,此时使用核对密码的函数一般会用:
             char Password[7]="b62307";
        st=IC_CheckPass_4442hex(icdev,(unsigned char *)Password);     
             当然也可以使用如下的例程:
             pass[3]={0xb6,0x23,0x07};
    IC_CheckPass_SLE4442(ICDev,pass);
           
             在DCIC读写器开发包中包含很多_Hex结尾的函数,用法都类似。请自行参考\examples目录中的例程。注意,在读类的函数中使用HEX方式,缓冲区的申请一定是长度的两倍,否则会出现溢出错误,导致系统崩溃。

  • 返回上一级
  • 点击回到首页>> 关于我们 | 新闻资讯 | 产品与解决方案 | 服务与支持 | 人才招聘 | 联系我们 | 在线留言
    版权所有:2012-2013 All right reserved 深圳市德卡科技股份有限公司 网站备案:粤ICP备05033465号 地址:深圳市南山区茶光路文光工业区17栋四楼