关于二代身份证读卡器地二次开发.docx

上传人:小飞机 文档编号:3306310 上传时间:2023-03-12 格式:DOCX 页数:5 大小:37.33KB
返回 下载 相关 举报
关于二代身份证读卡器地二次开发.docx_第1页
第1页 / 共5页
关于二代身份证读卡器地二次开发.docx_第2页
第2页 / 共5页
关于二代身份证读卡器地二次开发.docx_第3页
第3页 / 共5页
关于二代身份证读卡器地二次开发.docx_第4页
第4页 / 共5页
关于二代身份证读卡器地二次开发.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《关于二代身份证读卡器地二次开发.docx》由会员分享,可在线阅读,更多相关《关于二代身份证读卡器地二次开发.docx(5页珍藏版)》请在三一办公上搜索。

1、关于二代身份证读卡器地二次开发关于二代身份证读卡器地二次开发 客户提供一台读卡器、sdtapi.dll、WltRS.dll,以及相应的头文件,我是通过java的jni与所写c+代码进行交互,但是java这边接收到的身份证基本信息一直是乱码。先说明c+向java传其他中文不会出现乱码,是在c+读出的身份证信息就是乱码。c+的代码如下: #include windows.h #include CardReader.h #include sdtapi.h #include String.h #include WltRS.h JNIEXPORT jbyteArray JNICALL Java_Card

2、Reader_getMessage(JNIEnv * env, jobject jobj) char* szStr=mei zhao dao xin xi; char cInput; int iRet; /返回码 int iPort; /端口号 int iIfOpen=0; /是否需要打开串口 unsigned char pucIIN8; unsigned char pucSN8; unsigned char pucCHMsg512; /文字信息 unsigned char pucPHMsg1024; /照片信息 unsigned char pucFPMsg1024; /指纹信息 unsign

3、ed int uiCHMsgLen,uiPHMsgLen; memset(pucCHMsg,0,sizeof(pucCHMsg); int length; jbyteArray RtnArr = NULL; jsize arrsize; if(iIfOpen=0) for (iPort = 1001; iPort NewByteArray(arrsize); env-SetByteArrayRegion(RtnArr, 0,length, (jbyte*)szStr); return RtnArr; iRet=SDT_StartFindIDCard(iPort,pucIIN, iIfOpen)

4、; printf(SDT_StartFindIDCard error, error code is: %02xn, iRet); if (iRet != 0x9f) iRet=SDT_StartFindIDCard(iPort,pucIIN, iIfOpen); /再找卡 if (iRet != 0x9f) iRet = SDT_ClosePort(iPort); printf(SDT_StartFindIDCard error, error code is: %02xn, iRet); szStr=SDT_StartFindIDCard error; length = strlen(szSt

5、r); arrsize =(jsize)length; RtnArr=env-NewByteArray(arrsize); env-SetByteArrayRegion(RtnArr, 0,length, (jbyte*)szStr); return RtnArr; iRet=SDT_SelectIDCard (iPort,pucSN, iIfOpen); printf(SDT_SelectIDCard error, error code is: %02xn, iRet); if (iRet != 0x90) iRet=SDT_SelectIDCard (iPort,pucSN, iIfOpe

6、n); /再选卡 if (iRet != 0x90) iRet = SDT_ClosePort(iPort); printf(SDT_SelectIDCard error, error code is: %02xn, iRet); szStr=SDT_SelectIDCard error; length = strlen(szStr); arrsize =(jsize)length; RtnArr=env-NewByteArray(arrsize); env-SetByteArrayRegion(RtnArr, 0,length, (jbyte*)szStr); return RtnArr;

7、iRet=SDT_ReadBaseMsg(iPort,pucCHMsg,&uiCHMsgLen, pucPHMsg,&uiPHMsgLen, iIfOpen); printf(SDT_ReadBaseMsg error, error code is: %02xn, iRet); if(iRet!=0x90) printf(SDT_ReadBaseMsg error, error code is: %02xn, iRet); if(iIfOpen=0) SDT_ClosePort(iPort); printf(ssaaaasasasaasn); szStr=SDT_ReadBaseMsg err

8、or; length = strlen(szStr); arrsize =(jsize)length; RtnArr=env-NewByteArray(arrsize); printf(123345453n); env-SetByteArrayRegion(RtnArr, 0,length, (jbyte*)szStr); printf(12sssssssss33454534ssaaaasasasaas); return RtnArr; printf(SDT_ReadBaseMsg OKn); if(iIfOpen=0) SDT_ClosePort(iPort); RtnArr=env-NewByteArray(uiCHMsgLen); printf(pucCHMsg=%sn,pucCHMsg); env-SetByteArrayRegion(RtnArr, 0,uiCHMsgLen, (jbyte*)pucCHMsg); return RtnArr; length = strlen(szStr); arrsize =(jsize)length; RtnArr=env-NewByteArray(arrsize); env-SetByteArrayRegion(RtnArr, 0,length, (jbyte*)szStr); return RtnArr;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号