正文

VC 16处理指纹2007-10-25 13:54:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/sword2008/30482.html

分享到:

 cByte[0]=0x1b;
  cByte[1]=0x72;//114
  cByte[2]=0x73;
  cByte[3]=0x01;//注意长度为两个数
  cByte[4]=0x21;//289//92//0121
  cByte[5]=0x89;
  cByte[6]=0x02;

  all[0]+=cByte[3]+cByte[4]+cByte[5]+cByte[6];//加四个,因为长度0X01容易被忽略
  
  ////////////////第一个指纹不需要校验和
  for(int i=0 ,j=7;j<150;i=i+2,j++)//i为字符串第几个截取的INDEX,j为第几个特征,最后一个是检验和
  {//572
   temp=s.Mid(i,2);
   cByte[j]=CStringTo16byte(temp);
   all[0]+=cByte[j];
  }
  ////////////////

  for(int i1=286, j1=150;j1<293;i1=i1+2,j1++)//i为字符串第几个截取的INDEX,j为第几个特征,最后一个是检验和
  {
   temp=s.Mid(i1,2);

   cByte[j1]=CStringTo16byte(temp);
   all[0]+=cByte[j1];
  }
  cByte[293]=all[0];

  ////////////////

  DWORD  dwWriteCount     =   0;
  DWORD  dwReadCount      =   0;
  DWORD  dwCommStatus; 

  SetCommMask (handle, EV_TXEMPTY);
  if(handle!=NULL)
   WriteFile(handle,cByte,294, &dwWriteCount, 0);

  WaitCommEvent( handle,   &dwCommStatus,   NULL   );

  if((dwCommStatus & EV_TXEMPTY) == EV_TXEMPTY)//
  {
   ReadFile(handle,cGetByte, 8, &dwReadCount, NULL);
   str.Format(_T("%02x %02x %02x %02x %02x %02x %02x %02x") , cGetByte[0] , cGetByte[1] ,
   cGetByte[2] , cGetByte[3] , cGetByte[4] , cGetByte[5] , cGetByte[6] , cGetByte[7]);
  }

  while(true)
  {
   if(str == CString("1b 72 73 00 03 89 00 8c"))
   {
    MessageBox(NULL,"您已通过验证.","指纹验证",NULL);
    break;
   }

   if(str == CString("1b 72 73 00 03 89 32 be"))
   {
    MessageBox(NULL,"请用登记过的手指验证.","验证失败",MB_ICONHAND);
    break;
   }

阅读(564) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册