/****************************************************************************** Copyright(C):2015~2018 hzleaper FileName:$FILE_BASE$.$FILE_EXT$ Author:zhikun wu Email:zk.wu@hzleaper.com Tools:vs2010 pc on company Created:$DATE$ History:$DAY$:$MONTH$:$YEAR$ $HOUR$:$MINUTE$ *******************************************************************************/ #include "zdefines.h" #include enum tpemIoType { TP_IO_ADLINK = 1, }; class IIoInterface { public: IIoInterface() {} virtual ~IIoInterface() {} virtual int IIint() = 0; virtual int IFree() = 0; virtual int IReadI(qint32& state) = 0; virtual int IReadO(qint32& state) = 0; virtual int IWriteO(qint32& state) = 0; }; #define TP_IOCTRL_DLL "tpIoCtrl" class QLoadIoCtrl : public QLibrary { public: typedef IIoInterface*(*func_io_create)(int); typedef void(*func_io_delete)(IIoInterface*); QLoadIoCtrl(const QString& path) #ifdef _DEBUG : QLibrary(path + TP_IOCTRL_DLL + "d") #else : QLibrary(path + TP_IOCTRL_DLL) #endif { _ioCreate = (func_io_create)resolve("tp_io_create"); _ioDelete = (func_io_delete)resolve("tp_io_delete"); } ~QLoadIoCtrl(){} IIoInterface* Create(int type) { if (NULL == _ioCreate) { return NULL; } return _ioCreate(type); } void Delete(IIoInterface* pio) { if (NULL != _ioDelete) { _ioDelete(pio); } } private: func_io_create _ioCreate; func_io_delete _ioDelete; };