您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sq_createslot函数代码示例

51自学网 2021-06-03 08:11:44
  C++
这篇教程C++ sq_createslot函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sq_createslot函数的典型用法代码示例。如果您正苦于以下问题:C++ sq_createslot函数的具体用法?C++ sq_createslot怎么用?C++ sq_createslot使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sq_createslot函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: init_streamclass

void init_streamclass(HSQUIRRELVM v){    sq_pushregistrytable(v);    sq_pushstring(v,_SC("std_stream"),-1);    if(SQ_FAILED(sq_get(v,-2))) {        sq_pushstring(v,_SC("std_stream"),-1);        sq_newclass(v,SQFalse);        sq_settypetag(v,-1,(SQUserPointer)SQSTD_STREAM_TYPE_TAG);        SQInteger i = 0;        while(_stream_methods[i].name != 0) {            SQRegFunction &f = _stream_methods[i];            sq_pushstring(v,f.name,-1);            sq_newclosure(v,f.f,0);            sq_setparamscheck(v,f.nparamscheck,f.typemask);            sq_createslot(v,-3);            i++;        }        sq_createslot(v,-3);        sq_pushroottable(v);        sq_pushstring(v,_SC("stream"),-1);        sq_pushstring(v,_SC("std_stream"),-1);        sq_get(v,-4);        sq_createslot(v,-3);        sq_pop(v,1);    }    else {        sq_pop(v,1); //result    }    sq_pop(v,1);}
开发者ID:ShaunOfTheLive,项目名称:OpenCoasterTycoon,代码行数:30,


示例2: SbuCreateClass

BOOL SbuCreateClass(HSQUIRRELVM v,SquirrelClassDecl *cd){	int n = 0;	int oldtop = sq_gettop(v);	sq_pushroottable(v);	sq_pushstring(v,cd->name,-1);	if(cd->base) {		sq_pushstring(v,cd->base,-1);		if(SQ_FAILED(sq_get(v,-3))) {			sq_settop(v,oldtop);			return FALSE;		}	}	if(SQ_FAILED(sq_newclass(v,cd->base?1:0))) {		sq_settop(v,oldtop);		return FALSE;	}	sq_settypetag(v,-1,(SQUserPointer)cd);	const ScriptClassMemberDecl *members = cd->members;	const ScriptClassMemberDecl *m = NULL;	while(members[n].name) {		m = &members[n];		sq_pushstring(v,m->name,-1);		sq_newclosure(v,m->func,0);		sq_setparamscheck(v,m->params,m->typemask);		sq_setnativeclosurename(v,-1,m->name);		sq_createslot(v,-3);		n++;	}	sq_createslot(v,-3);	sq_pop(v,1);	return TRUE;}
开发者ID:eriser,项目名称:kdguigl,代码行数:33,


示例3: sq_base_register

void sq_base_register(HSQUIRRELVM v){	SQInteger i=0;	sq_pushroottable(v);	while(base_funcs[i].name!=0) {		sq_pushstring(v,base_funcs[i].name,-1);		sq_newclosure(v,base_funcs[i].f,0);		sq_setnativeclosurename(v,-1,base_funcs[i].name);		sq_setparamscheck(v,base_funcs[i].nparamscheck,base_funcs[i].typemask);		sq_createslot(v,-3);		i++;	}	sq_pushstring(v,_SC("_version_"),-1);	sq_pushstring(v,SQUIRREL_VERSION,-1);	sq_createslot(v,-3);	sq_pushstring(v,_SC("_charsize_"),-1);	sq_pushinteger(v,sizeof(SQChar));	sq_createslot(v,-3);	sq_pushstring(v,_SC("_intsize_"),-1);	sq_pushinteger(v,sizeof(SQInteger));	sq_createslot(v,-3);	sq_pushstring(v,_SC("_floatsize_"),-1);	sq_pushinteger(v,sizeof(SQFloat));	sq_createslot(v,-3);	sq_pop(v,1);}
开发者ID:469306621,项目名称:Languages,代码行数:26,


示例4: time

SQInteger CSystemNatives::Date( SQVM * pVM ){	// Get the current time	SQInteger iTime = SharedUtility::GetTime ();	// Get the current time and date	time_t t = time( NULL );	const struct tm * tm = localtime( &t );	// Create a new table	sq_newtable( pVM );	sq_pushstring( pVM, "day", strlen("day") );	sq_pushinteger( pVM, tm->tm_mday );	sq_createslot( pVM, -3 );	sq_pushstring( pVM, "month", strlen("month") );	sq_pushinteger( pVM, (tm->tm_mon + 1) );	sq_createslot( pVM, -3 );	sq_pushstring( pVM, "year", strlen("year") );	sq_pushinteger( pVM, (tm->tm_year + 1900) );	sq_createslot( pVM, -3 );	sq_pushstring( pVM, "yearday", strlen("yearday") );	sq_pushinteger( pVM, tm->tm_yday );	sq_createslot( pVM, -3 );	return 1;}
开发者ID:DarkKlo,项目名称:maf2mp,代码行数:30,


示例5: sqstd_register_stringlib

SQInteger sqstd_register_stringlib( HSQUIRRELVM v ) {	sq_pushstring( v, _SC( "regexp" ), -1 );	sq_newclass( v, SQFalse );	SQInteger i = 0;	while ( rexobj_funcs[i].name != 0 ) {		SQRegFunction &f = rexobj_funcs[i];		sq_pushstring( v, f.name, -1 );		sq_newclosure( v, f.f, 0 );		sq_setparamscheck( v, f.nparamscheck, f.typemask );		sq_setnativeclosurename( v, -1, f.name );		sq_createslot( v, -3 );		i++;	}	sq_createslot( v, -3 );	i = 0;	while ( stringlib_funcs[i].name != 0 ) {		sq_pushstring( v, stringlib_funcs[i].name, -1 );		sq_newclosure( v, stringlib_funcs[i].f, 0 );		sq_setparamscheck( v, stringlib_funcs[i].nparamscheck, stringlib_funcs[i].typemask );		sq_setnativeclosurename( v, -1, stringlib_funcs[i].name );		sq_createslot( v, -3 );		i++;	}	return 1;}
开发者ID:q4a,项目名称:scourge,代码行数:26,


示例6: sq_getentity

// getCheckpointTargetPosition(checkpointid)SQInteger CCheckpointNatives::GetTargetPosition(SQVM * pVM){	EntityId checkpointId;	sq_getentity(pVM, -1, &checkpointId);	CCheckpoint * pCheckpoint = g_pCheckpointManager->Get(checkpointId);	if(pCheckpoint)	{		CVector3 vecTargetPosition;		pCheckpoint->GetTargetPosition(vecTargetPosition);		sq_newtable(pVM);		sq_pushinteger(pVM, 0);		sq_pushfloat(pVM, vecTargetPosition.fX);		sq_createslot(pVM, -3);		sq_pushinteger(pVM, 1);		sq_pushfloat(pVM, vecTargetPosition.fY);		sq_createslot(pVM, -3);		sq_pushinteger(pVM, 2);		sq_pushfloat(pVM, vecTargetPosition.fZ);		sq_createslot(pVM, -3);		return 1;	}	sq_pushbool(pVM, false);	return 1;}
开发者ID:AgresivD,项目名称:ivmultiplayer,代码行数:27,


示例7: MultiScriptAssert

bool SquirrelScriptContext::RegisterUserClass(ClassDesc* desc){	MultiScriptAssert(desc->m_constructor);	MultiScriptAssert(desc->m_destructor);	SquirrelClassInfo* classInfo = new SquirrelClassInfo();	classInfo->m_desc = desc;	classInfo->m_context = this;	// Create class	sq_pushstring(m_vm, desc->m_name, -1);	// TODO: Handle subclass via 2nd parameter	sq_newclass(m_vm, SQFalse);	// Add methods	for (unsigned int i = 0; i < desc->m_methods.size(); ++i)	{		sq_pushstring(m_vm, desc->m_methods[i].m_name, -1);		sq_pushuserpointer(m_vm, classInfo);		sq_pushinteger(m_vm, i);		sq_newclosure(m_vm, SquirrelClassMethodCallback, 2);		sq_createslot(m_vm, -3);	}	// Add constructor	sq_pushstring(m_vm, "constructor", -1);	sq_pushuserpointer(m_vm, classInfo);	sq_newclosure(m_vm, SquirrelClassConstructorCallback, 1);	sq_createslot(m_vm, -3);	// Add to-string method	sq_pushstring(m_vm, "AsString", -1);	sq_pushuserpointer(m_vm, classInfo);	sq_newclosure(m_vm, SquirrelClassToStringMethodCallback, 1);	sq_createslot(m_vm, -3);	// Add optional destructor	if (!desc->m_garbageCollect)	{		// Add destructor		sq_pushstring(m_vm, "Destroy", -1);		sq_pushuserpointer(m_vm, classInfo);		sq_newclosure(m_vm, SquirrelClassDestructorCallback, 1);		sq_createslot(m_vm, -3);	}	else	{		// TODO: Add garbage collection callback here	}	// Add class to root table	sq_createslot(m_vm, -3);	// Add class info	m_classes.push_back(classInfo);	return true;}
开发者ID:joechenq,项目名称:multi-script,代码行数:58,


示例8: sqstd_register_stringlib

SQInteger sqstd_register_stringlib(HSQUIRRELVM v){	sq_pushstring(v,_SC("regexp"),-1);	sq_newclass(v,SQFalse,"regexp");	SQInteger i = 0;	while(rexobj_funcs[i].name != 0) {		SQRegFunction &f = rexobj_funcs[i];		sq_pushstring(v,f.name,-1);		sq_newclosure(v,f.f,0);		sq_setparamscheck(v,f.nparamscheck,f.typemask);		sq_setnativeclosureinfo(v,-1,f.name,f.file);		if (f.help)		{			sq_pushstring(v,f.help,-1);			sq_sethelp(v, -2);		}		sq_createslot(v,-3);		i++;	}	sq_createslot(v,-3);	i = 0;	while(stringlib_funcs[i].name!=0)	{		sq_pushstring(v,stringlib_funcs[i].name,-1);		sq_newclosure(v,stringlib_funcs[i].f,0);		sq_setparamscheck(v,stringlib_funcs[i].nparamscheck,stringlib_funcs[i].typemask);		sq_setnativeclosureinfo(v,-1,stringlib_funcs[i].name,stringlib_funcs[i].file);		if (stringlib_funcs[i].help)		{			sq_pushstring(v,stringlib_funcs[i].help,-1);			sq_sethelp(v, -2);		}		sq_createslot(v,-3);		i++;	}	sq_getdefaultdelegate(v, OT_STRING);	i = 0;	while(stringextdeleg_funcs[i].name!=0)	{		sq_pushstring(v,stringextdeleg_funcs[i].name,-1);		sq_newclosure(v,stringextdeleg_funcs[i].f,0);		sq_setparamscheck(v,stringextdeleg_funcs[i].nparamscheck,stringextdeleg_funcs[i].typemask);		sq_setnativeclosureinfo(v,-1,stringextdeleg_funcs[i].name,stringextdeleg_funcs[i].file);		if (stringextdeleg_funcs[i].help)		{			sq_pushstring(v,stringextdeleg_funcs[i].help,-1);			sq_sethelp(v,-2);		}		sq_createslot(v,-3);		i++;	}	sq_pop(v, 1);	return 1;}
开发者ID:noriter,项目名称:nit,代码行数:56,


示例9: declare_stream

SQRESULT declare_stream(HSQUIRRELVM v,const SQChar* name,SQUserPointer typetag,const SQChar* reg_name,SQRegFunction *methods,SQRegFunction *globals){    if(sq_gettype(v,-1) != OT_TABLE)        return sq_throwerror(v,_SC("table expected"));    SQInteger top = sq_gettop(v);    //create delegate    init_streamclass(v);    sq_pushregistrytable(v);    sq_pushstring(v,reg_name,-1);    sq_pushstring(v,_SC("std_stream"),-1);    if(SQ_SUCCEEDED(sq_get(v,-3))) {        sq_newclass(v,SQTrue);        sq_settypetag(v,-1,typetag);        SQInteger i = 0;        while(methods[i].name != 0) {            SQRegFunction &f = methods[i];            sq_pushstring(v,f.name,-1);            sq_newclosure(v,f.f,0);            sq_setparamscheck(v,f.nparamscheck,f.typemask);            sq_setnativeclosurename(v,-1,f.name);            sq_createslot(v,-3);            i++;        }        sq_createslot(v,-3);        sq_pop(v,1);        i = 0;        while(globals[i].name!=0)        {            SQRegFunction &f = globals[i];            sq_pushstring(v,f.name,-1);            sq_newclosure(v,f.f,0);            sq_setparamscheck(v,f.nparamscheck,f.typemask);            sq_setnativeclosurename(v,-1,f.name);            sq_createslot(v,-3);            i++;        }        //register the class in the target table        sq_pushstring(v,name,-1);        sq_pushregistrytable(v);        sq_pushstring(v,reg_name,-1);        sq_get(v,-2);        sq_remove(v,-2);        sq_createslot(v,-3);        sq_settop(v,top);        return SQ_OK;    }    sq_settop(v,top);    return SQ_ERROR;}
开发者ID:ShaunOfTheLive,项目名称:OpenCoasterTycoon,代码行数:51,


示例10: SbuCreateStaticNamespace

BOOL SbuCreateStaticNamespace(HSQUIRRELVM v,ScriptNamespaceDecl *sn){	int n = 0;	sq_pushroottable(v);	sq_pushstring(v,sn->name,-1);	sq_newtable(v);	const ScriptClassMemberDecl *members = sn->members;	const ScriptClassMemberDecl *m = NULL;	while(members[n].name) {		m = &members[n];		sq_pushstring(v,m->name,-1);		sq_newclosure(v,m->func,0);		sq_setparamscheck(v,m->params,m->typemask);		sq_setnativeclosurename(v,-1,m->name);		sq_createslot(v,-3);		n++;	}	const ScriptConstantDecl *consts = sn->constants;	const ScriptConstantDecl *c = NULL;	n = 0;	while(consts[n].name) {		c = &consts[n];		sq_pushstring(v,c->name,-1);		switch(c->type) {		case OT_STRING: sq_pushstring(v,c->val.s,-1);break;		case OT_INTEGER: sq_pushinteger(v,c->val.i);break;		case OT_FLOAT: sq_pushfloat(v,c->val.f);break;		}		sq_createslot(v,-3);		n++;	}	if(sn->delegate) {		const ScriptClassMemberDecl *members = sn->delegate;		const ScriptClassMemberDecl *m = NULL;		sq_newtable(v);		while(members[n].name) {			m = &members[n];			sq_pushstring(v,m->name,-1);			sq_newclosure(v,m->func,0);			sq_setparamscheck(v,m->params,m->typemask);			sq_setnativeclosurename(v,-1,m->name);			sq_createslot(v,-3);			n++;		}		sq_setdelegate(v,-2);	}	sq_createslot(v,-3);	sq_pop(v,1);		return TRUE;}
开发者ID:eriser,项目名称:kdguigl,代码行数:51,


示例11: store_bool

void store_bool(HSQUIRRELVM vm, const char* name, bool val){  sq_pushstring(vm, name, -1);  sq_pushbool(vm, val ? SQTrue : SQFalse);  if(SQ_FAILED(sq_createslot(vm, -3)))    throw scripting::SquirrelError(vm, "Couldn't add float value to table");}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:7,


示例12: store_string

void store_string(HSQUIRRELVM vm, const char* name, const std::string& val){  sq_pushstring(vm, name, -1);  sq_pushstring(vm, val.c_str(), val.length());  if(SQ_FAILED(sq_createslot(vm, -3)))    throw scripting::SquirrelError(vm, "Couldn't add float value to table");}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:7,


示例13: store_int

void store_int(HSQUIRRELVM vm, const char* name, int val){  sq_pushstring(vm, name, -1);  sq_pushinteger(vm, val);  if(SQ_FAILED(sq_createslot(vm, -3)))    throw scripting::SquirrelError(vm, "Couldn't add int value to table");}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:7,


示例14: sq_pushroottable

void CSquirrel::RegisterFunction(const char * szFunctionName, SQFUNCTION pfnFunction, int iParameterCount, const char * szFunctionTemplate, bool bPushRootTable){	// Push the root table onto the stack if needed	if(bPushRootTable)		sq_pushroottable(m_pVM);	// Push the function name onto the stack	sq_pushstring(m_pVM, szFunctionName, -1);	// Create a new function	sq_newclosure(m_pVM, pfnFunction, 0);	// Set the function parameter template and count	if(iParameterCount != -1)	{		char szTemp[128];		if(szFunctionTemplate)			sprintf(szTemp, ".%s", szFunctionTemplate);		sq_setparamscheck(m_pVM, (iParameterCount + 1), (szFunctionTemplate) ? szTemp : NULL);	}	// Create a new slot	sq_createslot(m_pVM, -3);	// Pop the root table from the stack if needed	if(bPushRootTable)		sq_pop(m_pVM, 1);}
开发者ID:B2O,项目名称:IV-Network,代码行数:30,


示例15: sq_pushnull

void SQDbgServer::SerializeState(){	sq_pushnull(_v);	sq_setdebughook(_v);	sq_pushnull(_v);	sq_seterrorhandler(_v);	const SQChar *sz;	sq_pushobject(_v,_serializefunc);	sq_pushobject(_v,_debugroot);	sq_pushstring(_v,_SC("watches"),-1);	sq_newtable(_v);	for(WatchSetItor i=_watches.begin(); i!=_watches.end(); ++i)	{		sq_pushinteger(_v,i->_id);		sq_pushstring(_v,i->_exp.c_str(),(int)i->_exp.length());		sq_createslot(_v,-3);	}	sq_rawset(_v,-3);	if(SQ_SUCCEEDED(sq_call(_v,1,SQTrue,SQTrue))){		if(SQ_SUCCEEDED(sqstd_getblob(_v,-1,(SQUserPointer*)&sz)))			SendChunk(sz);	}	sq_pop(_v,2);		SetErrorHandlers();}
开发者ID:BackupTheBerlios,项目名称:supertux-svn,代码行数:26,


示例16: register_table

/* * Register new table. * Must be called before loading script files */void register_table(HSQUIRRELVM v, const char *name) {    sq_pushroottable(v);    sq_pushstring(v, name, -1);    sq_newtable(v);    sq_createslot(v, -3);    sq_pop(v, 1);}
开发者ID:pandazheng,项目名称:emo-framework,代码行数:11,


示例17: register_global_func

/* * Register global function. * Must be called before loading script files */void register_global_func(HSQUIRRELVM v, SQFUNCTION func, const char *fname) {    sq_pushroottable(v);    sq_pushstring(v, fname, -1);    sq_newclosure(v, func, 0);    sq_createslot(v, -3);    sq_pop(v,1);}
开发者ID:pandazheng,项目名称:emo-framework,代码行数:11,


示例18: register_class

/* * Register new class. * Must be called before loading script files */void register_class(HSQUIRRELVM v, const char *cname) {    sq_pushroottable(v);    sq_pushstring(v, cname, -1);    sq_newclass(v, false);    sq_createslot(v, -3);    sq_pop(v, 1);}
开发者ID:pandazheng,项目名称:emo-framework,代码行数:11,


示例19: RegisterFunction

void RegisterFunction(HSQUIRRELVM pVM, const char * szName, SQFUNCTION pfnFunction){	sq_pushroottable(pVM);	sq_pushstring(pVM, szName, -1);	sq_newclosure(pVM, pfnFunction, 0);	sq_createslot(pVM, -3);	sq_pop(pVM, 1);}
开发者ID:mabako,项目名称:iv-modlua,代码行数:8,


示例20: sq_createslot

void CSquirrel::RegisterClassFinish(){	// Create a new slot	sq_createslot(m_pVM, -3);	// Pop the root table from the stack	sq_pop(m_pVM, 1);}
开发者ID:B2O,项目名称:IV-Network,代码行数:8,


示例21: sqstd_seterrorhandlers

void sqstd_seterrorhandlers(HSQUIRRELVM v){	sq_setcompilererrorhandler(v,_sqstd_compiler_error);	sq_newclosure(v,_sqstd_aux_printerror,0);	sq_seterrorhandler(v);	// additional functions	sq_pushroottable(v);	sq_pushstring(v, _SC("printCallStack"), -1);	sq_newclosure(v, printCallStack, 0);	sq_createslot(v, -3);	sq_pushstring(v, _SC("notifyAllExceptions"), -1);	sq_newclosure(v, notifyAllExceptions, 0);	sq_setparamscheck(v, 2, _SC(".n|b"));	sq_createslot(v, -3);	sq_pop(v,1);}
开发者ID:John-He-928,项目名称:krkrz,代码行数:17,


示例22: register_global

void register_global(HSQUIRRELVM v,SQFUNCTION f,const char *fname){    sq_pushroottable(v);    sq_pushstring(v,fname,-1);    sq_newclosure(v,f,0); //create a new function    sq_createslot(v,-3);    sq_pop(v,1); //pops the root table}
开发者ID:dreamsxin,项目名称:nawia,代码行数:8,


示例23: sqstd_register_mathlib

SQRESULT sqstd_register_mathlib(HSQUIRRELVM v){	SQInteger i=0;	while(mathlib_funcs[i].name!=0)	{		sq_pushstring(v,mathlib_funcs[i].name,-1);		sq_newclosure(v,mathlib_funcs[i].f,0);		sq_setparamscheck(v,mathlib_funcs[i].nparamscheck,mathlib_funcs[i].typemask);		sq_setnativeclosurename(v,-1,mathlib_funcs[i].name);		sq_createslot(v,-3);		i++;	}	sq_pushstring(v,_SC("RAND_MAX"),-1);	sq_pushinteger(v,RAND_MAX);	sq_createslot(v,-3);	sq_pushstring(v,_SC("PI"),-1);	sq_pushfloat(v,(SQFloat)M_PI);	sq_createslot(v,-3);	return SQ_OK;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:19,


示例24: TJSRegisterNativeClass

// 初期化用voidTJSObject::init(HSQUIRRELVM vm){    // squirrel インスタンスを TJS
C++ sq_get函数代码示例
C++ sq_call函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。