⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lk607w.c

📁 写卡用的软件
💻 C
字号:
#include<windows.h>
#include<windowsx.h>
                               
int  Wcard(LPSTR inb,LPSTR istr);
int  Rcard(LPSTR inb,LPSTR instr);

#include<string.h>
#include<ctype.h>
                        
int FAR PASCAL LibMain(HINSTANCE hInstance,WORD wDataSeg,WORD wHeapSize,LPSTR lpszCmdLine)
{
 if(wHeapSize!=0) UnlockData(0);
 return(1);
}            

/*void FAR PASCAL _export WEP(int nSystemExit)
{
  return 1 ; 
}*/
                        
int  Wcard(LPSTR inb,LPSTR istr)
{
  DCB dcb;
  COMSTAT comstat;
  HANDLE hd;
  int retv=0;
  int i=0,stl=0;
  long t1,t2;
  unsigned char bcc=0,instr[300],nb[]="COM2:96",str[300];
  char setting[]="COM2:96,o,7,1",comn[]="COM2";
  char *ps;

  lstrcpy(nb,inb);
  AnsiUpper(istr);
  lstrcpy(str+1,istr);
  comn[3]=nb[3];
  lstrcpy(setting,nb);
  lstrcat(setting,",o,7,1");
  str[0]=2;

  while(1)
  {
   i++;
   bcc=str[i]^bcc;
   if(str[i]==0)
    {
     str[i]=3;
     bcc=3^bcc   ;
     str[i+1]=bcc  ;
     str[i+2]=0 ;
     stl=i+2 ;
     break ;
    }
  }

  hd=OpenComm(comn,300,300);
  if(!(hd<0))
   {
     retv=1;
   }
  else
   {
    retv=-1;
    goto end;
   }
  if(BuildCommDCB(setting,&dcb)==0)
   {
    retv=1;
   }
  else
   {
    retv=-2;
    goto end;
   }
  if(SetCommState(&dcb)==0)
   {
    retv=1;
   }
  else
   {
    retv=-3;
    goto end;
   }
    
  WriteComm(hd,str,stl);
  ps=instr;
  t1=GetCurrentTime();
  t2=0;
  GetAsyncKeyState(VK_ESCAPE);		//clear the ESC pressed events
  while(t2<=100)
  {  
   if(GetAsyncKeyState(VK_ESCAPE)!=0)
    {
     retv=-5;
     goto end;
    }
   GetCommError(hd,&comstat);
   if(comstat.cbInQue!=0)
    {
     ReadComm(hd,ps,comstat.cbInQue);
     ps=ps+comstat.cbInQue;
     t1=GetCurrentTime();
    }
   if(ps!=instr) t2=GetCurrentTime()-t1;
  }

  *ps=0;
  if(lstrcmp(str,instr)==0) retv=1;
  else retv=-4;

end:
  FlushComm(hd,1);  
  FlushComm(hd,0);  
  EscapeCommFunction(hd,CLRRTS);
  CloseComm(hd);
  return retv;
}


int  Rcard(LPSTR inb,LPSTR instr)
{
  DCB dcb;
  COMSTAT comstat;
  HANDLE hd;
  int i=0,retv=0;
  long t1,t2;
  unsigned char nb[]="COM2:96";
  char setting[]="COM2:96,o,7,1",comn[]="COM2";
  unsigned char *ps;

  lstrcpy(nb,inb);
  comn[3]=nb[3];
  lstrcpy(setting,nb);
  lstrcat(setting,",o,7,1");
  hd=OpenComm(comn,300,300);

  if(hd<0)
   {
    retv=-1;
    goto end;
   }
  if(BuildCommDCB(setting,&dcb)!=0)
   {
    retv=-2;
    goto end;
   }
  if(SetCommState(&dcb)!=0)
   {
    retv=-3;
    goto end;
   }

  ps=instr;
  t1=GetCurrentTime();
  t2=0;
  GetAsyncKeyState(VK_ESCAPE);      	//clear the ESC pressed events
  while(t2<=100)
  {                                       
   if(GetAsyncKeyState(VK_ESCAPE)!=0)
    {
     retv=-5;
     goto end;
    }
   GetCommError(hd,&comstat);
   if(comstat.cbInQue!=0)
    {
     ReadComm(hd,ps,comstat.cbInQue);
     ps=ps+comstat.cbInQue;
     t1=GetCurrentTime();
    }
   if(ps!=instr) t2=GetCurrentTime()-t1;         
  }              
  
  *ps=0;
  if(lstrlen(instr)<=4) retv=-4;
  else if(*instr==2)
    {
     lstrcpy(instr,instr+1);
     if(*(instr+lstrlen(instr)-2)==3)
     {
      *(instr+lstrlen(instr)-2)=0;
      retv=lstrlen(instr);
     }    
     else if(*(instr+lstrlen(instr)-1)==3)
     {
      *(instr+lstrlen(instr)-1)=0;
      retv=lstrlen(instr);
     }
     else retv=-4;
    }
  else retv=-4;

end: 
   FlushComm(hd,1);  
   FlushComm(hd,0);  
   EscapeCommFunction(hd,CLRRTS);
   CloseComm(hd);   
   return retv;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -