在某宝上买了一个神思二代身份证读卡器,给的DEMO实在是....无语了,无奈,自己研究写了一个。
1、首先,需要把licence.dat和Termb.lic文件放到C盘根目录下。
请注意,Termb.lic是有版本的,需要跟自己的读卡器一致...
Termb.lic是有版本的,需要跟自己的读卡器一致...
Termb.lic是有版本的,需要跟自己的读卡器一致...
重要的事情说3遍,因为楼主就从网上下载了一个,调试了N久不知道啥原因,最后发现是Termb.lic的版本问题,问400的客服MM要了一个新的才行!
2、要安装驱动啦。。。最新的找400要。。。CSDN传不上来 。。。
3、先用官方的软件试一下驱动安装是否正常。。。。
4、最后,用C++自己写的demo,比网上的都简单,从文本文件里读出信息即可,当然,最后这些临时文件都自己删除了吧。
代码看这儿:这是读基本信息的操作,之前要加载DLL、验证卡操作完成,结束之后要关闭,卸载DLL。
完整的代码下载:/detail/dafenqie/9710290。
void CUcmdVCDlg::OnButton4()
{
// TODO: Add your control notification handler code here
BYTE CMD;
char tmp[200];
int para0,para1,para2;
CMD=0x44; //读基本信息
//para0=0;
para1=8811;
para2=9986;
char* str = "e:\\testid";
int nRet;
//nRet=mycmd(&CMD,¶0,¶1,¶2);
nRet=mycmd(&CMD,¶0,¶1,(int*)str);
if(nRet==62171)
{
DispIdCardInfo((LPSTR)str);
//初始化端口成功
AfxMessageBox("读卡成功");
}
}
void CUcmdVCDlg::DispIdCardInfo(CString filePath)
{
CString infoFilePath;
CString bmpFilePath;
infoFilePath = filePath + "1.txt";
bmpFilePath = filePath + ".bmp";
CFileFind finder;
BOOL bWorking = finder.FindFile(infoFilePath);
if (bWorking)
{
CStdioFile mFile;
CFileException mExcept;
mFile.Open(infoFilePath, CFile::modeRead, &mExcept);
CString strLine;
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC3)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC5)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC7)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC9)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC11)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC13)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC15)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC17)->SetWindowTextA(strLine);
mFile.ReadString(strLine);
GetDlgItem(IDC_STATIC19)->SetWindowTextA(strLine);
//if (PathFileExists(bmpFilePath))
//{
CDC *pDC=NULL;
pDC=GetDlgItem(IDC_STATIC20)->GetDC();
ShowImage(pDC, bmpFilePath, 0,0 );
mFile.Close();
//}
}
}