#ifndef _DLL_API_H #define _DLL_API_H #ifdef _DLL_API_H #define BY618_108_API __declspec(dllexport) #else #define BY618_108_API __declspec(dllimport) #endif ////////函数返回值///////// // 0x00:成功 // 0x01:通讯端口号不合法、或通讯端口打开失败等 // 0x60:SAM不能接收命令 // 0x80:(卡认证时)寻找居民身份证失败 // 0x81:(卡认证时)选择居民身份证失败 // 0x9F:函数参数长度错误 // 0x90:其他未知错误 ////////////调用流程说明////////// // 1、打开通讯端口 -> 2、循环调用卡认证函数 到该函数返回值为0为止 -> 3、读卡 -> 4、获取字段信息或BMP图片 -> 5、关闭通讯端口。 ////////////////////////////////// /////////////////接口说明////////////// //================基本功能接口函数定义====================// //******************************************** //打开通讯端口。 //串口:1到16; USB口:1001到1016。 //参数iComm取值。比如阅读器连到COM5,参数传入5;要打开第一个USB接口设备,参数传入1001。 //******************************************** extern "C" BY618_108_API int WINAPI SNBC_InitComm(int iComm); //卡认证。若卡片放置后发生读卡错误,需移走卡片重新放置并认证。 extern "C" BY618_108_API int WINAPI SNBC_Authenticate(); ////////////////////////////////////////////////////////////// //读卡。无参数,默认路径为当前可执行文件路径。 extern "C" BY618_108_API int WINAPI SNBC_ReadContent(); //******************************************* //获取姓名信息。 //参数1: 返回结果字符串, //参数2: 调用者期望获取得到的字符串长度。该长度若大于实际结果长度,返回字符串以实际结果为准;小于实际结果长度,返回截取后的字符串结果。 //以下各字段雷同。 //******************************************* extern "C" BY618_108_API int WINAPI SNBC_GetName(char* , int); //获取性别信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetSex(char* , int); //获取出生信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetBirth(char* , int); //获取民族信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetNation(char* , int); //获取身份证号码信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetID(char* , int); //获取住址信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetAddress(char* , int); //获取签发机关信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetDepartment(char* , int); //获取最新住址信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetNewAddress(char* , int); //获取有效期开始信息。参数解释同上 extern "C" BY618_108_API int WINAPI SNBC_GetISSUE(char* , int); //获取有效期结束信息。参数解释同上。 extern "C" BY618_108_API int WINAPI SNBC_GetEXPIRES(char* , int); //关闭通讯端口。参数参考SNBC_InitComm说明 。使用结束必须关闭端口,否则重新打开设备时会出错。 extern "C" BY618_108_API int WINAPI SNBC_CloseComm(int iComm); //检测SAM模块工作状态。 extern "C" BY618_108_API int WINAPI SNBC_CheckSAMStatus(); //SAM_A 复位 extern "C" BY618_108_API int WINAPI SNBC_ResetSAM(); //读取 SAM_A 的编号字符串 extern "C" BY618_108_API int WINAPI SNBC_GetSAMIDToStr(char* str); //=====================其他专项应用接口========================// //返回照片文件内容(SAM模块返回的原始数据,大小1024)。 extern "C" BY618_108_API int WINAPI SNBC_PhotoFileContent(char*); //生成JPG格式照片并返回照片文件名包括路径。 extern "C" BY618_108_API int WINAPI SNBC_PhotoFile(char* strDir); //**************************************************** //生成并保存图片文件。 //获取照片信息函数。 //参数bmpFileName需按照格式传入(传入其他参数格式出错)。 //格式采用如下形式:D:\\TEMP\\PHOTO\\save1\\a.bmp ,即各 //级目录之间使用双反斜杠隔开,最后部分为BMP图片文件名称。 //具体存储路径可以自由定义,文件夹深度(层数)可以自由定义。 //**************************************************** extern "C" BY618_108_API int WINAPI SNBC_SavePhoto(char* bmpFileName); /////////////////////////用于网页的接口(文件路径使用绝对地址参数)///////////////////////////////////// //读卡。有参数,路径为绝对地址路径。参数strSourceDir格式为"C:\\TEMP\\ASM\\SWW\\" extern "C" BY618_108_API int WINAPI SNBC_ReadContentNet(char* strSourceDir); //生成JPG格式照片并返回照片文件名包括路径。参数getBmpDir和strSourceDir格式为"C:\\TEMP\\ASM\\SWW\\", extern "C" BY618_108_API int WINAPI SNBC_PhotoFileNet(char* getBmpDir, char* strSourceDir, char* strDir); //**************************************************** //生成并保存图片文件。参数getBmpDir和strSourceDir格式为"C:\\TEMP\\ASM\\SWW\\" //获取照片信息函数。 //参数bmpFileName需按照格式传入(传入其他参数格式出错)。 //格式采用如下形式:D:\\TEMP\\PHOTO\\save1\\a.bmp ,即各 //级目录之间使用双反斜杠隔开,最后部分为BMP图片文件名称。 //具体存储路径可以自由定义,文件夹深度(层数)可以自由定义。 //**************************************************** extern "C" BY618_108_API int WINAPI SNBC_SavePhotoNet(char* getBmpDir,char* strSourceDir, char* bmpFileName); //保存基本信息文件,参数为文件路径。 //extern "C" BY618_108_API int WINAPI SNBC_SaveBaseFile(char*); #endif