/********************************************************************* *文件说明: 为了内部提高效率,可以直接获取变量模块的内存地址并使用API调用 主要为了方便目标模块需要频繁用到变量功能 *作者: logos *日期: 2018/11/09 *修改日志: 2018/11/09 logos create ***********************************************************************/ #pragma once #ifndef DLL_INCLUDE_IPVAR_H #define DLL_INCLUDE_IPVAR_H #ifndef EXPORT_C #define EXPORT_C extern "C" #endif #ifndef WINAPI #define WINAPI __stdcall #endif class ipvar {//变量操作类接口 public: virtual int type() = 0; virtual void lock() = 0; virtual void unlock() = 0; virtual bool islock() = 0; virtual int seti(int val) = 0; virtual int setd(double dval) = 0; virtual int sets(const char* szval) = 0; virtual int wait(int val) = 0; virtual int geti() = 0; virtual double getd() = 0; virtual const char* getcs() = 0; virtual int gets(char* szval) = 0; }; //导出接口 EXPORT_C int WINAPI ipvar_type(ipvar* p); EXPORT_C void WINAPI ipvar_lock(ipvar* p); EXPORT_C void WINAPI ipvar_unlock(ipvar* p); EXPORT_C int WINAPI ipvar_islock(ipvar* p); EXPORT_C int WINAPI ipvar_wait(ipvar* p, int val); EXPORT_C int WINAPI ipvar_geti(ipvar* p); EXPORT_C double WINAPI ipvar_getd(ipvar* p); EXPORT_C int WINAPI ipvar_gets(ipvar* p, char* val); EXPORT_C int WINAPI ipvar_seti(ipvar* p, int val); EXPORT_C int WINAPI ipvar_setd(ipvar* p, double val); EXPORT_C int WINAPI ipvar_sets(ipvar* p, const char* val); /**************************************************** *Function: 通过变量ID获取变量操作类 *Intput: key 变量ID *Output: NULL *Return: 成功返回类对象,失败返回NULL ******************************************************/ EXPORT_C ipvar* WINAPI get_ipvar(int key); /**************************************************** *Function: 通过变量名称获取变量操作类 *Intput: key 变量ID *Output: NULL *Return: 成功返回类对象,失败返回NULL ******************************************************/ EXPORT_C ipvar* WINAPI get_ipvars(const char* key); #endif