You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

156 lines
6.6 KiB
C

2 years ago
/*********************************************************************
*<EFBFBD>ļ<EFBFBD>˵<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: logos
*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: 2018/09/01
*<EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD>־: 2018/09/01 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
***********************************************************************/
#pragma once
#ifndef DLL_INCLUDE_ICONFIG_H
#define DLL_INCLUDE_ICONFIG_H
#ifndef EXPORT_C
#define EXPORT_C extern "C"
#endif
#ifndef WINAPI
#define WINAPI __stdcall
#endif
struct TConfig;
class IConfig
{//<2F><><EFBFBD>ýӿ<C3BD><D3BF><EFBFBD>
public:
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><EFBFBD>أ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: file <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD> <256<EFBFBD>ֽ<EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int Load(const char* file = 0) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: pszcontent <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ΪNULL<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS: <EFBFBD><EFBFBD><EFBFBD>ô˽ӿڣ<EFBFBD><EFBFBD><EFBFBD>֮ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int Parse(const char* pszcontent = 0) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
*Intput: file <EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD> <256<EFBFBD>ֽ<EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS: file=NULLʱ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΪLoadʱ<EFBFBD><EFBFBD>·<EFBFBD><EFBFBD>
******************************************************/
virtual int Save(const char* file = 0) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>޸<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
lpValue ֵ ?=xxx <256<EFBFBD>ֽ<EFBFBD>
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int SetString(const char* key, const char* name, const char* lpValue) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
lpValue ֵ ?=xxx <256<EFBFBD>ֽ<EFBFBD>
*Output: lpValue <EFBFBD><EFBFBD>ȡֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int GetString(const char* key, const char* name, char* lpValue) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
*Output: NULL
*Return: lpValue ֵ ?=xxx <256<EFBFBD>ֽ<EFBFBD> <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lpValue<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><EFBFBD><EFBFBD>NULL
******************************************************/
virtual const char* GetString(const char* key, const char* name) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>޸<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
iValue ֵ ?=xxx <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int SetInt(const char* key, const char* name, int iValue) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
*Output: NULL
*Return: iValue ֵ ?=xxx <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>iValue<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
******************************************************/
virtual int GetInt(const char* key, const char* name) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD>޸<EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- double<EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
dValue ֵ ?=xxx <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
*Output: NULL
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int SetDouble(const char* key, const char* name, double dValue) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- double<EFBFBD><EFBFBD>
*Intput: key <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> [xxx] -- <EFBFBD><EFBFBD><EFBFBD>ܰ<EFBFBD><EFBFBD><EFBFBD>'/' <32<EFBFBD>ֽ<EFBFBD>
name <EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD> xxx=? <32<EFBFBD>ֽ<EFBFBD>
*Output: NULL
*Return: dValue ֵ ?=xxx doubleֵ <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dValue<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD>0
******************************************************/
virtual double GetDouble(const char* key, const char* name) = 0;
/****************************************************
*Function: <EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <EFBFBD>˽ӿڱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>config.h
*Intput: plist <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
nsize <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
*Output: plist <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Return: <EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*PS: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD>NULL<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>С,<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٻ<EFBFBD>ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
virtual int GetList(TConfig* plist = 0, int nsize = 0) = 0;
};
//<2F><><EFBFBD><EFBFBD><EFBFBD>ӿ<EFBFBD>
EXPORT_C int WINAPI IConfig_Load(IConfig* pcfg, const char* file = 0);
EXPORT_C int WINAPI IConfig_Save(IConfig* pcfg, const char* file = 0);
EXPORT_C int WINAPI IConfig_Parse(IConfig* pcfg, const char* pszcontent = 0);
EXPORT_C int WINAPI IConfig_SetString(IConfig* pcfg, const char* key, const char* name, const char* lpValue);
EXPORT_C int WINAPI IConfig_GetString(IConfig* pcfg, const char* key, const char* name, char* lpValue);
EXPORT_C int WINAPI IConfig_SetInt(IConfig* pcfg, const char* key, const char* name, int iValue);
EXPORT_C int WINAPI IConfig_GetInt(IConfig* pcfg, const char* key, const char* name);
EXPORT_C int WINAPI IConfig_SetDouble(IConfig* pcfg, const char* key, const char* name, double dValue);
EXPORT_C double WINAPI IConfig_GetDouble(IConfig* pcfg, const char* key, const char* name);
EXPORT_C int WINAPI IConfig_GetList(IConfig* pcfg, TConfig* plist = 0);
/****************************************************
*Function: <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Iconfigʵ<EFBFBD><EFBFBD>
*Intput: NULL
*Output: IConfig* <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI create_iconfig(IConfig** h);
/****************************************************
*Function: <EFBFBD>ͷ<EFBFBD>Iconfigʵ<EFBFBD><EFBFBD>
*Intput: NULL
*Output: IConfig <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD>
*Return: <EFBFBD>ɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><EFBFBD>ʧ<EFBFBD>ܷ<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
******************************************************/
EXPORT_C int WINAPI release_iconfig(IConfig* ph);
#endif //<2F><>ֹ<EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD>