#include "CDllCoreCtrl.h" #define _USE_LIB_CORECTRL_DLL #ifdef _USE_LIB_CORECTRL_DLL #include "DllLoader.h" #else extern "C" ICoreCtrl* Lib_CoreCtrl_Init(); extern "C" void Lib_CoreCtrl_Free(ICoreCtrl*); #endif #include "QZkJsonParser.h" CDllCoreCtrl::CDllCoreCtrl(const ZStringList& szDllPaths,class IDetectorEngine* pDE /*= NULL*/) { m_szDllPaths = szDllPaths; #ifdef _USE_LIB_CORECTRL_DLL m_pLibCoreCtrl = new CDllLoaderM("lpCoreCtrl", "Lib_CoreCtrl_Init", "Lib_CoreCtrl_Free", m_szDllPaths); if (NULL != m_pLibCoreCtrl) { m_pCoreCtrl = (ICoreCtrl*)m_pLibCoreCtrl->ModuleInit(nullptr); if (NULL != m_pCoreCtrl) { m_pCoreCtrl->IInitCore(pDE); } else { tpDebugOut("failed to get instance from tpCoreCtrl.dll"); } } else { tpDebugOut("failed to load tpCoreCtrl.dll"); } #else m_pLibCoreCtrl = NULL; m_pCoreCtrl = (ICoreCtrl*)Lib_CoreCtrl_Init(); #endif } CDllCoreCtrl::~CDllCoreCtrl() { if (NULL != m_pCoreCtrl) { #ifdef _USE_LIB_CORECTRL_DLL m_pCoreCtrl->IFreeCore(); delete m_pCoreCtrl; // if (NULL != m_pLibCoreCtrl) // { // m_pLibCoreCtrl->ModuleFree(); // } #else Lib_CoreCtrl_Free(m_pCoreCtrl); #endif m_pCoreCtrl = NULL; } if (NULL != m_pLibCoreCtrl) { delete m_pLibCoreCtrl; m_pLibCoreCtrl = NULL; } }