#include "libID81_SO.h" #include "unistd.h" #include "stdio.h" #include "string.h" #include "dlfcn.h" #include "stdlib.h" #include void *hlibID81 = NULL; mEnumScannerDevice EnumScannerDevice = NULL; mOpenConnection OpenConnection = NULL; mCloseConnection CloseConnection = NULL; mCheckHaveIdCard CheckHaveIdCard = NULL; mTakeOutIdCard TakeOutIdCard = NULL; mStartScanIdCard StartScanIdCard = NULL; mSavePicToMemory SavePicToMemory = NULL; mSavePicToFile SavePicToFile = NULL; mSavePicToFileII SavePicToFileII = NULL; mRetainIdCard RetainIdCard = NULL; mBackIdCard BackIdCard = NULL; mBackAndHoldIdCard BackAndHoldIdCard = NULL; mGetID2Info GetID2Info = NULL; mGetID2InfoEx GetID2InfoEx = NULL; mGetLastErrorCode GetLastErrorCode = NULL; mGetLastErrorStr GetLastErrorStr = NULL; mGetFWVersion GetFWVersion = NULL; mGetSWVersion GetSWVersion = NULL; mGetDevStatus GetDevStatus = NULL; mResetDevice ResetDevice = NULL; mSoftResetDevice SoftResetDevice = NULL; mUpdateOnLine UpdateOnLine = NULL; mCISCalibrate CISCalibrate = NULL; mSensorCalibrate SensorCalibrate = NULL; mSetButtonEnable SetButtonEnable = NULL; mSetAutoFeedEnable SetAutoFeedEnable = NULL; mSetInitFeedMode SetInitFeedMode = NULL; mSetHeadFileFormat SetHeadFileFormat = NULL; mGetID2InfoFromImage GetID2InfoFromImage = NULL; mGetPassportInfoFromImage GetPassportInfoFromImage = NULL; mBackIdCardToRerec BackIdCardToRerec = NULL; mGetIDInfoForeign GetIDInfoForeign = NULL; mGetIDInfoGAT GetIDInfoGAT = NULL; mGetIDCardType GetIDCardType = NULL; mGetAllTypeIdInfo GetAllTypeIdInfo = NULL; mSetLog SetLog = NULL; bool load_so(char *cErrorInfo) { Dl_info path_info; dladdr("load_so",&path_info); char str_FilePath[256]{0}; memcpy(str_FilePath,path_info.dli_fname,strlen(path_info.dli_fname)); printf("first_str_FilePath=%s\n",str_FilePath); char *pLastSlath=strrchr(str_FilePath,'/'); *pLastSlath=0; char *a="/keba/libBS-ID81M.keba.so.2.0.3"; strncat(str_FilePath,a,strlen(a)); printf("Second_str_FilePath=%s\n",str_FilePath); hlibID81 = dlopen(str_FilePath, RTLD_LAZY); if(hlibID81 == NULL) { sprintf(cErrorInfo, "load .so failed."); return false; } EnumScannerDevice = (mEnumScannerDevice)dlsym(hlibID81, "EnumScannerDevice"); if(!EnumScannerDevice) { sprintf(cErrorInfo, "load'EnumScannerDevice()'failed!"); return false; } OpenConnection = (mOpenConnection)dlsym(hlibID81, "OpenConnection"); if(!OpenConnection) { sprintf(cErrorInfo, "load'OpenConnection()'failed!"); return false; } CloseConnection = (mCloseConnection)dlsym(hlibID81, "CloseConnection"); if(!CloseConnection) { sprintf(cErrorInfo, "load'CloseConnection()'failed!"); return false; } CheckHaveIdCard = (mCheckHaveIdCard)dlsym(hlibID81, "CheckHaveIdCard"); if(!CheckHaveIdCard) { sprintf(cErrorInfo, "load'CheckHaveIdCard()'failed!"); return false; } TakeOutIdCard = (mTakeOutIdCard)dlsym(hlibID81, "TakeOutIdCard"); if(!TakeOutIdCard) { sprintf(cErrorInfo, "load'TakeOutIdCard()'failed!"); return false; } StartScanIdCard = (mStartScanIdCard)dlsym(hlibID81, "StartScanIdCard"); if(!StartScanIdCard) { sprintf(cErrorInfo, "load'StartScanIdCard()'failed!"); return false; } SavePicToMemory = (mSavePicToMemory)dlsym(hlibID81, "SavePicToMemory"); if(!SavePicToMemory) { sprintf(cErrorInfo, "load'SavePicToMemory()'failed!"); return false; } SavePicToFile = (mSavePicToFile)dlsym(hlibID81, "SavePicToFile"); if(!SavePicToFile) { sprintf(cErrorInfo, "load'SavePicToFile()'failed!"); return false; } SavePicToFileII = (mSavePicToFileII)dlsym(hlibID81, "SavePicToFileII"); if(!SavePicToFileII) { sprintf(cErrorInfo, "load'SavePicToFileII()'failed!"); return false; } RetainIdCard = (mRetainIdCard)dlsym(hlibID81, "RetainIdCard"); if(!RetainIdCard) { sprintf(cErrorInfo, "load'RetainIdCard()'failed!"); return false; } BackIdCard = (mBackIdCard)dlsym(hlibID81, "BackIdCard"); if(!BackIdCard) { sprintf(cErrorInfo, "load'BackIdCard()'failed!"); return false; } BackAndHoldIdCard = (mBackAndHoldIdCard)dlsym(hlibID81, "BackAndHoldIdCard"); if(!BackAndHoldIdCard) { sprintf(cErrorInfo, "load'BackAndHoldIdCard()'failed!"); return false; } GetID2Info = (mGetID2Info)dlsym(hlibID81, "GetID2Info"); if(!GetID2Info) { sprintf(cErrorInfo, "load'GetIDInfo()'failed!"); return false; } GetID2InfoEx = (mGetID2InfoEx)dlsym(hlibID81, "GetID2InfoEx"); if(!GetID2InfoEx) { sprintf(cErrorInfo, "load'GetIDInfoEx()'failed!"); return false; } GetLastErrorCode = (mGetLastErrorCode)dlsym(hlibID81, "GetLastErrorCode"); if(!GetLastErrorCode) { sprintf(cErrorInfo, "load'GetLastErrorCode()'failed!"); return false; } GetLastErrorStr = (mGetLastErrorStr)dlsym(hlibID81, "GetLastErrorStr"); if(!GetLastErrorStr) { sprintf(cErrorInfo, "load'GetLastErrorStr()'failed!"); return false; } GetFWVersion = (mGetFWVersion)dlsym(hlibID81,"GetFWVersion"); if(!GetFWVersion) { sprintf(cErrorInfo, "load'GetFWVersion()'failed!"); return false; } GetSWVersion = (mGetSWVersion)dlsym(hlibID81,"GetSWVersion"); if(!GetSWVersion) { sprintf(cErrorInfo, "load'GetSWVersion()'failed!"); return false; } GetDevStatus = (mGetDevStatus)dlsym(hlibID81,"GetDevStatus"); if(!GetDevStatus) { sprintf(cErrorInfo, "load'GetDevStatus()'failed!"); return false; } ResetDevice = (mResetDevice)dlsym(hlibID81,"ResetDevice"); if(!ResetDevice) { sprintf(cErrorInfo, "load'ResetDevice()'failed!"); return false; } SoftResetDevice = (mSoftResetDevice)dlsym(hlibID81,"SoftResetDevice"); if(!SoftResetDevice) { sprintf(cErrorInfo, "load'SoftResetDevice()'failed!"); return false; } UpdateOnLine = (mUpdateOnLine)dlsym(hlibID81,"UpdateOnLine"); if(!UpdateOnLine) { sprintf(cErrorInfo, "load'UpdateOnLine()'failed!"); return false; } CISCalibrate = (mCISCalibrate)dlsym(hlibID81, "CISCalibrate"); if(!CISCalibrate) { sprintf(cErrorInfo, "load'CISCalibrate()'failed!"); return false; } SensorCalibrate = (mSensorCalibrate)dlsym(hlibID81, "SensorCalibrate"); if(!SensorCalibrate) { sprintf(cErrorInfo, "load'SensorCalibrate()'failed!"); return false; } SetButtonEnable = (mSetButtonEnable)dlsym(hlibID81, "SetButtonEnable"); if(!SetButtonEnable) { sprintf(cErrorInfo, "load'SetButtonEnable()'failed!"); return false; } SetAutoFeedEnable = (mSetAutoFeedEnable)dlsym(hlibID81, "SetAutoFeedEnable"); if(!SetAutoFeedEnable) { sprintf(cErrorInfo, "load'SetAutoFeedEnable()'failed!"); return false; } SetInitFeedMode = (mSetInitFeedMode)dlsym(hlibID81, "SetInitFeedMode"); if(!SetInitFeedMode) { sprintf(cErrorInfo, "load'SetInitFeedMode()'failed!"); return false; } SetHeadFileFormat = (mSetHeadFileFormat)dlsym(hlibID81, "SetHeadFileFormat"); if(!SetHeadFileFormat) { sprintf(cErrorInfo, "load'SetHeadFileFormat()'failed!"); return false; } GetID2InfoFromImage = (mGetID2InfoFromImage)dlsym(hlibID81, "GetID2InfoFromImage"); if(!GetID2InfoFromImage) { sprintf(cErrorInfo, "load'GetID2InfoFromImage()'failed!"); return false; } GetPassportInfoFromImage = (mGetPassportInfoFromImage)dlsym(hlibID81, "GetPassportInfoFromImage"); if(!GetPassportInfoFromImage) { sprintf(cErrorInfo, "load'GetPassportInfoFromImage()'failed!"); return false; } BackIdCardToRerec = (mBackIdCardToRerec)dlsym(hlibID81, "BackIdCardToRerec"); if(!BackIdCardToRerec) { sprintf(cErrorInfo, "load'BackIdCardToRerec()'failed!"); return false; } GetIDInfoForeign = (mGetIDInfoForeign)dlsym(hlibID81, "GetIDInfoForeign"); if(!GetIDInfoForeign) { sprintf(cErrorInfo, "load'GetIDInfoForeign()'failed!"); return false; } GetIDInfoGAT = (mGetIDInfoGAT)dlsym(hlibID81, "GetIDInfoGAT"); if(!GetIDInfoGAT) { sprintf(cErrorInfo, "load'GetIDInfoGAT()'failed!"); return false; } GetIDCardType = (mGetIDCardType)dlsym(hlibID81, "GetIDCardType"); if(!GetIDCardType) { sprintf(cErrorInfo, "load'GetIDCardType()'failed!"); return false; } GetAllTypeIdInfo = (mGetAllTypeIdInfo)dlsym(hlibID81, "GetAllTypeIdInfo"); if(!GetAllTypeIdInfo) { sprintf(cErrorInfo, "load'GetAllTypeIdInfo()'failed!"); return false; } SetLog = (mSetLog)dlsym(hlibID81, "SetLog"); if(!SetLog) { sprintf(cErrorInfo, "load'SetLog()'failed!"); return false; } return true; } bool Unload_so() { if(hlibID81) { dlclose(hlibID81); hlibID81 = NULL; } }