亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? clipslibwrap_old.h

?? clips專家系統(tǒng)內(nèi)核打包類,很有參考性.
?? H
字號(hào):
#ifndef	_CLIPSWrap
	#define _CLIPSWrap
/////////////////////////////////////////////////////////////////////////////
// CCLIPSWrap defintion 

//CLIPS core code version
#define CLIPS_BUILD_VER 610
//define number of routes to handle
#define NUMROUTES		100
//define number of user routes to handle
// #define NUM_U_ROUTES	100
//define the maximum length of a fact string
#define MAX_FACT_LEN	640
//define max length of an item
#define MAX_ITEM_SIZE	640
//define max length of a list
#define MAX_LIST_SIZE	32000
//define number of iterations between msg pump calls
#define MAX_MSG_PUMP	1
//size of temp buffer variable
#define MBUFSIZE		1024

#ifndef __AFX_H__
	#include <afx.h>
#endif
#ifndef __AFXCOLL_H__
	#include <afxcoll.h>
#endif

#define DllExport	__declspec( dllexport )

//set this to 1 if you want ODBC support...
//remember to include rsvarcol.cpp into yor project as well
#define USE_ODBC 0
 #ifdef USE_ODBC
	#ifndef __AFXDB_H__
		#include <afxdb.h>
	#endif
	#ifndef _RSVARCOL_H_
		#include <rsvarcol.h>
	#endif
#endif

//prototype for route ordinal function
int GetRouteNum(int start, const char far* route);
//default router check function
bool IsDefaultRouter(const char *route);

//prototype for message pump callback
extern "C"	{
void DllExport MsgLoopProc(void);
}
#ifndef __defc
extern int Defcount;
#endif

//a handy macro to check for CLIPSInit and return something on fail
#define INITCHK(p)	if(!m_fClipsInit)	 {	\
						return p;}
//macro to clear the temp buffer
#define CLEARMBUF	memset(m_buf,0,MBUFSIZE);
#define SETMBUF(s)  CLEARMBUF strcpy(m_buf,s);
#define BOOLCHK(s)  (s) ? true : false

// just in case the CLIPS headers are not in 
// the preprocessor stack for this pass
#ifndef FACT_ADDRESS
	#define FACT_ADDRESS		6	
#endif
#ifndef INSTANCE_ADDRESS
	#define INSTANCE_ADDRESS	7
#endif

//the wrapper class
class CCLIPSWrap
{
	//CLIPS exception object
	class CLIPSException	{
		CString	Why;
	public:	//construction & destruction
		CLIPSException() {
			Why = "UnKnown";
		}
		CLIPSException(CString &Text)	{
			Why = Text;
		}
		CLIPSException(const char *szText)	{
			Why = szText;
		}
		virtual ~CLIPSException() {}

	public:	//methods
		void SetWhy(const char *szText)	{
			Why = szText;
		}
		void SetWhy(CString &Text)	{
			Why = Text;
		}
		const char *GetWhy()	{
			return (LPCSTR)Why;
		}
	};

public:
	//constructor and destructor are public
	CCLIPSWrap(int count = -1);
	virtual ~CCLIPSWrap(void);

//UserFunction return types
enum UDF_ReturnValues 
{
UDFReturn_External_Address = (unsigned) 'a',
UDFReturn_Boolean = (unsigned) 'b',
UDFReturn_Character = (unsigned) 'c',
UDFReturn_Double_Prec_Float = (unsigned) 'd',
UDFReturn_Single_Prec_Float = (unsigned) 'f',
UDFReturn_Integer = (unsigned) 'i',
UDFReturn_Symbol_String_or_InstanceName = (unsigned) 'j',
UDFReturn_Symbol_or_String = (unsigned) 'k',
UDFReturn_Long_Integer = (unsigned) 'l',
UDFReturn_Multifield = (unsigned) 'm',
UDFReturn_Integer_or_Float = (unsigned) 'n',
UDFReturn_Instance_Name = (unsigned) 'o',
UDFReturn_String = (unsigned) 's',
UDFReturn_Any = (unsigned) 'u',
UDFReturn_Void = (unsigned) 'v',
UDFReturn_Symbol = (unsigned) 'w',
UDFReturn_Instance_Address = (unsigned) 'x'
};

//Load file return codes
enum LoadStatus	{
	READ_FAIL,
	PARSE_FAIL,
	READ_OK,
	BAD_LOAD_NAME,
	READ_NOT_INIT,
	};

//Save file return codes
enum SaveStatus	{
	SAVE_FAIL,
	SAVE_OK,
	BAD_SAVE_NAME,
	SAVE_NOT_INIT,
	};

//class instance cases
enum InstanceCase	{
	I_PERIOD,
	I_SCOPE,
	I_CLASS
	};

// Attributes
protected:
	//CLIPS struct pointers
	//these are now (3.0) explicitly declared as the
	//correct pointer types rather than void *
	struct fact			*factPtr;
	struct defmodule	*modulePtr;
	struct defrule		*rulePtr;
	struct defglobal	*globalPtr;
	struct instance		*instancePtr;
	struct defclass		*classPtr;
	struct activation	*activationPtr;
	struct deftemplate	*templatePtr;
	struct instanceSlot *insSlotPtr;
	struct templateSlot *tempSlotPtr;
	//other internal stuff
	void* agendaPtr;
	FILE* fastLoad;
	FILE* fastSave;
	bool  m_fClipsInit;
	char  m_buf[MBUFSIZE];

// Operations
public:
	//this is our public interface to the rest of the CPP world
	void  SetMsgLoopCount(int ct)	{ Defcount = ct; }
	void  SetMsgLoopCBfn(void far (*func_ptr)(bool));
	//all of the member pointer accessors are now inline
	void  SetFactPtr(void *ptr = NULL)        { factPtr = (struct fact *)ptr; }
	void  SetRulePtr(void *ptr = NULL)        { rulePtr = (struct defrule*)ptr; }
	void  SetModulePtr(void *ptr = NULL)      { modulePtr = (struct defmodule*)ptr; }
	void  SetGlobalPtr(void *ptr = NULL)      { globalPtr = (struct defglobal*)ptr; }
	void  SetInstancePtr(void *ptr = NULL)    { instancePtr = (struct instance*)ptr; }
	void  SetClassPtr(void *ptr = NULL)       { classPtr = (struct defclass*)ptr; }
	void  SetAgendaPtr(void *ptr = NULL)      { agendaPtr = ptr; }
	void  SetTemplatePtr(void *ptr = NULL)    { templatePtr = (struct deftemplate*)ptr; }
	void  SetActivationPtr(void *ptr = NULL)  { activationPtr = (struct activation*)ptr; }
	void  SetErrorLog(CString & filename);
	void* GetFactPtr(void)       { return factPtr; }
	void* GetRulePtr(void)       { return rulePtr; }
	void* GetModulePtr(void)     { return modulePtr; }
	void* GetGlobalPtr(void)     { return globalPtr; }
	void* GetInstancePtr(void)   {return instancePtr; }
	void* GetClassPtr(void)      { return classPtr; }
	void* GetAgendaPtr(void)     { return agendaPtr; }
	void* GetActivationPtr(void) { return activationPtr; }
	void* GetTemplatePtr(void)	 { return templatePtr; }
	//defglobal functions
	bool		CLIPSGetNextDefglobal(void *pGlobal = NULL);
	bool		CLIPSFindDefglobal(CString & theVar);
	bool		CLIPSUndefglobal(void* Defglobal = NULL);
	bool 		SetConstruct(CString &theVar);
	float		GetDefglobalFloat(CString &name);
	int			GetDefglobalInt(CString &name);
	long int	GetDefglobalLong(CString &name);
const char far*	GetDefglobalString(CString &name);
	void*		GetDefglobalAddress(CString &name);
    bool        CLIPSParseDefglobal(CString &Source);
	//fact functions
 	bool		  CLIPSFindDeftemplate(CString &name);
	bool		  GetAllFacts(CStringArray &buffer);
	bool		  CLIPSNextFactString(CString& FactString, void *pFact = NULL);
	long int 	  CLIPSGetNumberOfFacts(void);
	bool		  CLIPSNextFact(void *pFact = NULL);
	bool		  CLIPSFactString(CString &Data, void *pFact = NULL);
	int			  CLIPSSetFactDup(int value = 0);
	bool		  CLIPSGetFactDup(void);
	bool		  CLIPSAssert(CString &String);
	bool		  CLIPSAssert(void* Fact = NULL);
	bool		  CLIPSIncrementFactCtr(void* Fact = NULL);
	bool		  CLIPSDecrementFactCtr(void* Fact = NULL);
	bool		  CLIPSGetFactListChanged(void);
	bool		  CLIPSSetFactListChanged(bool Value = false);
	bool		  AddFactArray(CStringArray& List, int NumFacts = 0);
	bool		  CLIPSCreateFact(void* tPtr = NULL);
	bool		  CLIPSAssignFactSlotDefaults(void *theFact = NULL);
	//misc
	CStringArray *SetRouteBuffer(CStringArray* pBuffer, CString &Route, bool remove = false);
	CStringArray *SetRouteBuffer(CStringArray* pBuffer, const char *pRoute, bool remove = false);
	bool		  SetRouteFile(CString& RouteName, CString& FileName);		
	bool		  SetRouteFile(CString& RouteName, const char far* FileName);		
	bool 		  CLIPSAgenda(CString& Routename);
	bool		  CLIPSInit(void);
	bool 		  CLIPSReset(void);
	void 		  CLIPSExit(int retVal = 1);
	long int 	  CLIPSRun(long int numIterations = -1);
	bool 		  CLIPSClear(void);
	bool		  CLIPSRetract(void *Fact = NULL);
	bool		  CLIPSWatch(CString &Item);
	bool		  CLIPSUnWatch(CString &Item);
	bool		  CLIPSMatches(void *Rule = NULL);
	bool 		  CLIPSGetCurrentModule(void);
	void		  MultifieldToString(CString &buffer, struct multifield *segment, int printParens);
	//file functions
	int 		  CLIPSLoad(CString &scriptFile);
	int			  CLIPSSave(CString &Filename);
	int 		  CLIPSBSave(CString &BinName);
	int 		  CLIPSBLoad(CString &BinName);
	int			  CLIPSSaveFacts(CString &FileName, bool Visable = TRUE);
	int			  CLIPSLoadFacts(CString &FileName);
	bool		  CLIPSDribble(CString &FileName, bool Switch = FALSE);
	//instance functions
	bool		  GetInstanceSlotName(CString &name, void *pSlot);
	bool		  CLIPSGetNextInstance(int Which = 0,void* Class = NULL);
	bool		  CLIPSMakeInstance(CString &Data);
	bool		  CLIPSFindInstance(CString &Name, bool SearchImports = FALSE);
	bool		  CLIPSDeleteInstance(void* Instance = NULL);
	bool 		  DeleteAllInstances(void);
	bool		  CLIPSGetInstanceClass(void* Instance = NULL);
	bool		  CLIPSGetNextInstanceInClass(void *pClass = NULL);
	bool		  CLIPSGetInstanceName(CString &Data, void* Instance = NULL);
	bool		  CLIPSGetInstanceData(CString &Data, void* Instance = NULL);
	bool		  CLIPSGetInstancePPForm(CString &Data, void *pInst = NULL);
	bool		  CLIPSCreateRawInstance(CString &Name, void *pClass = NULL);
	bool		  CLIPSValidInstance(void* Instance = NULL);
	bool		  CLIPSDirectGetSlot(CString &Class, CString &Slot, CString &Value);
	bool		  CLIPSDirectPutSlot(CString &Class, CString &Slot, CString &Value, int type = -1);
	long		  GetSlotCount(void *pFact, bool IsFact);
unsigned long int CLIPSGetGlobalNumberOfInstances(void);
	long int	  CLIPSLoadInstances(CString &FileName);
	long int	  CLIPSSaveInstances(CString &FileName, bool Visable = FALSE);
	bool 		  SetSlotValue(CString &Class, CString &Slot, CString &Value);
	bool 		  GetSlotValue(CString &Class, CString &Slot, CString &Value);
	bool		  ReadFactSlot(CString &Slot, CString &Data, void *pFact = NULL);
	bool		  WriteFactSlot(CString&Slot, CString &Data, int type, void *pFact = NULL);
	long		  GetInstanceSlotType(void *pSlot = NULL);
	void*         GetInstanceSlot(CString &name, void *pInstance = NULL);
	bool	 	  CLIPSRouteCommand(CString &Command, CString &route, int do_print = 1);
	long int	  CLIPSGetStrategy(void);
	long int	  CLIPSSetStrategy(long int data = 0);
	void*		  CLIPSAddSymbol(CString &Symbol);
	void*		  CLIPSAddLong(long int lValue);
	void*		  CLIPSAddDouble(double dValue);
	long int	  CLIPSMemoryUsed(void);
	long int	  CLIPSMemoryRequests(void);
	bool		  CLIPSGetFocus(void);
	bool		  CLIPSRemoveAllFacts(void);
	long int	  CLIPSMemUsed(void);
	bool		  CLIPSBatch(CString &FileName);
	bool		  CLIPSBatchStar(CString &FileName);
	void		  CLIPSFreeMem(void);
	void		  CLIPSSetHaltExecution(bool);
	bool		  CLIPSGetHaltExecution(void);
    int           Version(void);
	bool		  CLIPSGetNextDefclass(void* pClass = NULL);
	bool		  CLIPSGetNextActivation(void* pAct = NULL);
	bool		  CLIPSSend(CString &Msg, CString &Args, CString &InsName, CString &RetStr);
	bool		  CLIPSBuild(CString& Command);
	bool		  CLIPSAddResetFunction(const char *szCLIPSFunctionName, void(*pFunction)(void), int iPriorityValue);
#if USE_ODBC
	int					CLIPSODBCQuery(CString& Query, CString& Credentials, CString& DeftemplateName, bool bImplode);
	BOOL				CLIPSODBCQuery(CString& Query, CString& Credentials, CString& DeftemplateName, bool bImplode, CString& strError);
	BOOL				CLIPSODBCQuery(CString& Query, CDatabase& DataSource, CString& DeftemplateName, bool bImplode, CString& strError);
#endif
	bool				AddFunction(const char *szCLIPSFunctionName, char cReturnType, int (*pFunction)(void), const char *szFunctionName, const char *szParameterTypes);
	int					CLIPSRtnArgCount(void);
	int					CLIPSArgCountCheck(CString& FunctionName, int iRestriction, int iCount);
	bool				CLIPSArgTypeCheck(CString& FunctionName, int iPos, int iType, void *pDataObject);
	char			   *CLIPSRtnLexeme(int iPos);
	double				CLIPSRtnDouble(int iPos);
	long int			CLIPSRtnLong(int iPos);
	void			   *CLIPSRtnUnknown(int iPos, void *DataObject);
	void			   *CLIPSCreateMultifield(int iSize);
	void				CLIPSSetMultifieldErrorValue(void *pMultifield);
private:
	char *    GetGlobal(CString & name);
#if USE_ODBC
	bool	  IssueODBCQuery(CVarRecordset& rsODBC, CString& strDeftemplateName, CString& strFact, bool bImplode);
#endif

};

/////////////////////////////////////////////////////////////////////////////
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产黄人亚洲片| 免播放器亚洲一区| 欧美一区二区三区在线视频| 日韩国产在线一| 欧美激情综合网| 91精品国产综合久久久蜜臀粉嫩 | 亚洲福利视频一区| 久久日一线二线三线suv| 在线观看国产日韩| 激情成人综合网| 亚洲在线视频一区| 亚洲精品在线观看视频| 在线播放欧美女士性生活| 国产精品一品二品| 亚欧色一区w666天堂| 国产性色一区二区| 久久亚洲一区二区三区明星换脸| 99精品视频一区二区三区| 欧美a级一区二区| √…a在线天堂一区| 欧美成人性福生活免费看| 色综合色综合色综合| 国产一区二区成人久久免费影院 | 日韩视频一区在线观看| 风间由美一区二区三区在线观看| 一区二区三区在线免费观看| 久久久五月婷婷| 在线不卡一区二区| www.欧美日韩国产在线| 日韩av一级电影| 国产精品国模大尺度视频| 在线国产电影不卡| 成人av电影观看| 久久精品99国产精品| 亚洲精品午夜久久久| 精品国产百合女同互慰| 欧美日韩亚洲综合一区| 国产a级毛片一区| 日本不卡的三区四区五区| 中文字幕在线不卡一区 | 成人综合婷婷国产精品久久免费| 免费人成网站在线观看欧美高清| 亚洲精品欧美激情| 综合久久久久综合| 国产欧美一区二区精品性色超碰| 欧美成人福利视频| 欧美一区二区三区四区高清| 精品视频一区二区三区免费| 91国偷自产一区二区三区观看| 成人小视频在线观看| 国产精品一区二区免费不卡| 日本韩国一区二区三区视频| 成人午夜视频免费看| 国产一区二区福利视频| 国产制服丝袜一区| 久久国产精品99久久久久久老狼 | 欧美影院一区二区三区| 97超碰欧美中文字幕| 99久久精品免费看国产免费软件| 丁香五精品蜜臀久久久久99网站| 国产河南妇女毛片精品久久久| 国产一区二区三区免费观看 | 成人精品视频.| 国产91精品一区二区麻豆亚洲| 免费成人性网站| 久久国内精品自在自线400部| 开心九九激情九九欧美日韩精美视频电影 | 香蕉久久夜色精品国产使用方法 | 亚洲国产成人va在线观看天堂| 一区二区三区高清在线| 亚洲一区二区三区四区在线| 一区二区三区日韩在线观看| 亚洲精品国久久99热| 亚洲成人在线观看视频| 日韩电影在线免费| 精品亚洲免费视频| 国模大尺度一区二区三区| 国产老妇另类xxxxx| av资源网一区| 欧美三级中文字幕在线观看| 欧美一区二区视频在线观看| 精品国产精品一区二区夜夜嗨| 久久久久久久久久久久久久久99 | 91在线国产福利| 欧美日韩中字一区| 日韩欧美视频在线 | 中文字幕免费一区| 一区二区三区加勒比av| 午夜久久久久久| 精品一区在线看| 99久久亚洲一区二区三区青草| 欧美亚洲国产一区在线观看网站| 91精品国产欧美一区二区成人| 久久嫩草精品久久久久| 中文字幕中文字幕中文字幕亚洲无线| 中文字幕视频一区| 丝袜亚洲另类欧美| 国产精品77777| 91福利区一区二区三区| 91精品国产黑色紧身裤美女| 国产精品网曝门| 亚洲一区在线看| 精品亚洲免费视频| 色88888久久久久久影院野外| 日韩一区二区在线观看| 国产精品国产精品国产专区不片| 亚洲 欧美综合在线网络| 免费成人av在线| 99久久国产综合精品色伊| 欧美一区二区大片| 国产欧美一区二区精品久导航 | 91成人免费网站| 亚洲精品中文在线| 婷婷综合在线观看| 在线免费精品视频| 国产色综合久久| 亚洲成人免费看| 精品一区二区在线免费观看| 91成人在线精品| 国产日产欧美一区二区三区| 日本三级亚洲精品| 国产成人啪免费观看软件| 欧美怡红院视频| 最新热久久免费视频| 狠狠色丁香婷婷综合久久片| 欧美体内she精视频| 国产精品大尺度| 国产精品一区二区三区四区| 在线91免费看| 亚洲小少妇裸体bbw| www.综合网.com| 久久精品网站免费观看| 日韩精品午夜视频| 欧美午夜在线一二页| 亚洲色图色小说| 高清国产一区二区| 亚洲精品一区二区三区福利| 日韩综合一区二区| 欧美色爱综合网| 一区二区三区美女| 国产一区二区三区蝌蚪| 欧美电影免费观看高清完整版在线| 一区二区三国产精华液| 97精品电影院| 亚洲色图视频网| 99国产一区二区三精品乱码| 欧美激情在线看| 国产sm精品调教视频网站| 久久综合九色综合欧美就去吻| 免费的成人av| 欧美色图一区二区三区| 国产欧美一二三区| 顶级嫩模精品视频在线看| 欧美激情一区二区在线| 大桥未久av一区二区三区中文| 国产日韩精品一区二区浪潮av| 日本伊人色综合网| 欧美一级二级三级蜜桃| 亚洲在线中文字幕| 在线观看日韩毛片| 一区精品在线播放| 国产精品亚洲综合一区在线观看| 91精品国产综合久久久久久久 | 91传媒视频在线播放| 一级日本不卡的影视| 精品污污网站免费看| 视频一区视频二区中文| 欧美一区二区免费| 久久精品国产亚洲高清剧情介绍 | 欧美一级在线免费| 国产亚洲精品中文字幕| 韩国女主播一区| 欧美丰满一区二区免费视频| 日本不卡视频在线| 国产女人水真多18毛片18精品视频 | 日韩在线播放一区二区| 91精品国产手机| 国产大片一区二区| 亚洲色欲色欲www| 欧美日韩国产小视频在线观看| 日日夜夜精品视频免费| 精品国内二区三区| 成人精品小蝌蚪| 亚洲国产欧美在线人成| 欧美日韩成人高清| 精东粉嫩av免费一区二区三区| 欧美国产成人在线| 欧美亚洲自拍偷拍| 美国av一区二区| 1024成人网| 精品久久久久久久一区二区蜜臀| 91视频免费看| 国产在线精品一区二区三区不卡 | 五月婷婷久久综合| 亚洲国产精品国自产拍av| 91麻豆精品国产91久久久使用方法 | 美女视频网站久久| 亚洲精品午夜久久久| 久久精品视频在线免费观看| 欧美日韩国产123区|