| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- #include "PcscLibrary.h"
- CPcscLibrary::CPcscLibrary(void)
- {
- hModule = NULL;
- OpenConnect = NULL;
- CloseConnect = NULL;
- GetReaderListName = NULL;
- SetReaderName = NULL;
- GetReaderType = NULL;
- GetCardStatus = NULL;
- EjectCard = NULL;
- ReaderConnect = NULL;
- SendApdu = NULL;
- SendControlCMD = NULL;
- HotReset = NULL;
- SetReaderType = NULL;
- GetVersionInfo = NULL;
- AutoBeel = NULL;
- Beel = NULL;
- SetLightMode = NULL;
- GetLightMode = NULL;
- SetLightStatus = NULL;
- GetLightStatus = NULL;
- BanTypeBCap = NULL;
- LoadMifareKey = NULL;
- CheckMifareKey = NULL;
- Read = NULL;
- Write = NULL;
- GetCardUID = NULL;
- SAMSlotActivation = NULL;
- ReadMagAllTracks = NULL;
- GetRFCardType = NULL;
- ReadIDCardInifo = NULL;
- M1ValueProcess = NULL;
- M1InquireBalance = NULL;
- M1BackBlock = NULL;
- GetIDFinger = NULL;
- GetIDDNNums = NULL;
- GetSAMID = NULL;
- SwitchRF = NULL;
- GetLastError = NULL;
- }
- CPcscLibrary::~CPcscLibrary(void)
- {
- if (hModule != NULL)
- {
- dlclose(hModule);
- hModule = NULL;
- }
- }
- bool CPcscLibrary::Load(const char* lpDllPath, char* ErrorInfo)
- {
- //定义变量
- returnValue = false;
- //判断参数
- if(ErrorInfo == NULL)
- {
- goto ExitLine;
- }
- //加载动态库
- if(hModule)
- {
- returnValue = true;
- goto ExitLine;
- }
- hModule = dlopen(lpDllPath, RTLD_LAZY);
- if(hModule == NULL)
- {
- sprintf(ErrorInfo, "加载传入:%s失败!",lpDllPath);
- //加载传入路径失败,再加载一次当前路径默认DLL
- hModule = dlopen("./CRT_603_CZ7.so", RTLD_LAZY);
- if(hModule == NULL)
- {
- sprintf(ErrorInfo, "加载默认及传入路径失败!");
- goto ExitLine;
- }
- }
- //******************************************************************************************************************
- //加载CRT_OpenConnect
- OpenConnect = (pCRT_OpenConnect)dlsym(hModule, "CRT_OpenConnect");
- if(!OpenConnect)
- {
- sprintf(ErrorInfo, "加载'CRT_OpenConnect'失败!");
- goto ExitLine;
- }
-
- //******************************************************************************************************************
- //加载CRT_CloseConnect
- CloseConnect = (pCRT_CloseConnect)dlsym(hModule, "CRT_CloseConnect");
- if(!CloseConnect)
- {
- sprintf(ErrorInfo, "加载'CRT_CloseConnect'失败!");
- goto ExitLine;
- }
-
- GetReaderListName = (pCRT_GetReaderListName)dlsym(hModule, "CRT_GetReaderListName");
-
- //******************************************************************************************************************
- //加载CRT_SetReaderName
- SetReaderName = (pCRT_SetReaderName)dlsym(hModule, "CRT_SetReaderName");
-
- //******************************************************************************************************************
- //加载CRT_GetReaderType
- GetReaderType = (pCRT_GetReaderType)dlsym(hModule, "CRT_GetReaderType");
- //******************************************************************************************************************
- //加载CRT_GetCardStatus
- GetCardStatus = (pCRT_GetCardStatus)dlsym(hModule, "CRT_GetCardStatus");
- //******************************************************************************************************************
- //加载CRT_EjectCard
- EjectCard = (pCRT_EjectCard)dlsym(hModule, "CRT_EjectCard");
- //******************************************************************************************************************
- //加载CRT_ReaderConnect
- ReaderConnect = (pCRT_ReaderConnect)dlsym(hModule, "CRT_ReaderConnect");
- //******************************************************************************************************************
- //加载CRT_SendApdu
- SendApdu = (pCRT_SendApdu)dlsym(hModule, "CRT_SendApdu");
- //******************************************************************************************************************
- //加载CRT_SendControlCMD
- SendControlCMD = (pCRT_SendControlCMD)dlsym(hModule, "CRT_SendControlCMD");
- //******************************************************************************************************************
- //加载CRT_HotReset
- HotReset = (pCRT_HotReset)dlsym(hModule, "CRT_HotReset");
- //******************************************************************************************************************
- //加载CRT_SetReaderType
- SetReaderType = (pCRT_SetReaderType)dlsym(hModule, "CRT_SetReaderType");
- //******************************************************************************************************************
- //加载CRT_GetVersionInfo
- GetVersionInfo = (pCRT_GetVersionInfo)dlsym(hModule, "CRT_GetVersionInfo");
-
- //******************************************************************************************************************
- //加载CRT_AutoBeel
- AutoBeel = (pCRT_AutoBeel)dlsym(hModule, "CRT_AutoBeel");
- //******************************************************************************************************************
- //加载CRT_Beel
- Beel = (pCRT_Beel)dlsym(hModule, "CRT_Beel");
- //******************************************************************************************************************
- //加载CRT_SetLightMode
- SetLightMode = (pCRT_SetLightMode)dlsym(hModule, "CRT_SetLightMode");
-
- //******************************************************************************************************************
- //加载CRT_GetLightMode
- GetLightMode = (pCRT_GetLightMode)dlsym(hModule, "CRT_GetLightMode");
- //******************************************************************************************************************
- //加载CRT_SetLightStatus
- SetLightStatus = (pCRT_SetLightStatus)dlsym(hModule, "CRT_SetLightStatus");
- //******************************************************************************************************************
- //加载CRT_GetLightStatus
- GetLightStatus = (pCRT_GetLightStatus)dlsym(hModule, "CRT_GetLightStatus");
- //******************************************************************************************************************
- //加载CRT_BanTypeBCap
- BanTypeBCap = (pCRT_BanTypeBCap)dlsym(hModule, "CRT_BanTypeBCap");
-
- //******************************************************************************************************************
- //加载CRT_LoadMifareKey
- LoadMifareKey = (pCRT_LoadMifareKey)dlsym(hModule, "CRT_LoadMifareKey");
-
- //******************************************************************************************************************
- //加载CRT_CheckMifareKey
- CheckMifareKey = (pCRT_CheckMifareKey)dlsym(hModule, "CRT_CheckMifareKey");
-
- //******************************************************************************************************************
- //加载CRT_Read
- Read = (pCRT_Read)dlsym(hModule, "CRT_Read");
-
- //******************************************************************************************************************
- //加载CRT_Write
- Write = (pCRT_Write)dlsym(hModule, "CRT_Write");
-
- //******************************************************************************************************************
- //加载CRT_GetCardUID
- GetCardUID = (pCRT_GetCardUID)dlsym(hModule, "CRT_GetCardUID");
-
- //******************************************************************************************************************
- //加载CRT_SAMSlotActivation
- SAMSlotActivation = (pCRT_SAMSlotActivation)dlsym(hModule, "CRT_SAMSlotActivation");
-
- //******************************************************************************************************************
- //加载CRT_ReadMagAllTracks
- ReadMagAllTracks = (pCRT_ReadMagAllTracks)dlsym(hModule, "CRT_ReadMagAllTracks");
-
- //******************************************************************************************************************
- //加载CRT_GetRFCardType
- GetRFCardType = (pCRT_GetRFCardType)dlsym(hModule, "CRT_GetRFCardType");
-
- //******************************************************************************************************************
- //加载CRT_ReadIDCardInifo
- ReadIDCardInifo = (pCRT_ReadIDCardInifo)dlsym(hModule, "CRT_ReadIDCardInifo");
- //******************************************************************************************************************
- //加载CRT_M1ValueProcess
- M1ValueProcess = (pCRT_M1ValueProcess)dlsym(hModule, "CRT_M1ValueProcess");
- //******************************************************************************************************************
- //加载CRT_M1InquireBalance
- M1InquireBalance = (pCRT_M1InquireBalance)dlsym(hModule, "CRT_M1InquireBalance");
-
- //******************************************************************************************************************
- //加载CRT_M1BackBlock
- M1BackBlock = (pCRT_M1BackBlock)dlsym(hModule, "CRT_M1BackBlock");
-
- //******************************************************************************************************************
- //加载CRT_GetIDFinger
- GetIDFinger = (pCRT_GetIDFinger)dlsym(hModule, "CRT_GetIDFinger");
-
- //******************************************************************************************************************
- //加载CRT_GetIDDNNums
- GetIDDNNums = (pCRT_GetIDDNNums)dlsym(hModule, "CRT_GetIDDNNums");
-
- //******************************************************************************************************************
- //加载CRT_GetSAMID
- GetSAMID = (pCRT_GetSAMID)dlsym(hModule, "CRT_GetSAMID");
-
- //******************************************************************************************************************
- //加载CRT_SwitchRF
- SwitchRF = (pCRT_SwitchRF)dlsym(hModule, "CRT_SwitchRF");
-
- //******************************************************************************************************************
- //加载CRT_GetLastError
- GetLastError = (pCRT_GetLastError)dlsym(hModule, "CRT_GetLastError");
- returnValue = true;
- ExitLine:
- if(!returnValue && hModule)
- {
- dlclose(hModule);
- }
- return returnValue;
- }
- bool CPcscLibrary::IsLoadSucceed()
- {
- if (!hModule && !returnValue)
- {
- return false;
- }
- return true;
- }
|