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

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

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

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

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

示例1: sq_pushstring

void CSquirrelVM::Push(const CString& str){	sq_pushstring(m_pVM, str.Get(), str.GetLength());}
开发者ID:RAG20,项目名称:IV-Network,代码行数:4,


示例2: Interactive

void Interactive(HSQUIRRELVM v){	#define MAXINPUT 1024	SQChar buffer[MAXINPUT];	SQInteger blocks =0;	SQInteger string=0;	SQInteger retval=0;	SQInteger done=0;	PrintVersionInfos();			sq_pushroottable(v);	sq_pushstring(v,_SC("quit"),-1);	sq_pushuserpointer(v,&done);	sq_newclosure(v,quit,1);	sq_setparamscheck(v,1,NULL);	sq_newslot(v,-3,SQFalse);	sq_pop(v,1);	while (!done) 	{		SQInteger i = 0;		scprintf(_SC("/nsq>"));		for(;;) {			int c;			if(done)return;			c = getchar();			if (c == _SC('/n')) {				if (i>0 && buffer[i-1] == _SC('//'))				{					buffer[i-1] = _SC('/n');				}				else if(blocks==0)break;				buffer[i++] = _SC('/n');			}			else if (c==_SC('}')) {blocks--; buffer[i++] = (SQChar)c;}			else if(c==_SC('{') && !string){					blocks++;					buffer[i++] = (SQChar)c;			}			else if(c==_SC('"') || c==_SC('/'')){					string=!string;					buffer[i++] = (SQChar)c;			}			else if (i >= MAXINPUT-1) {				scfprintf(stderr, _SC("sq : input line too long/n"));				break;			}			else{				buffer[i++] = (SQChar)c;			}		}		buffer[i] = _SC('/0');				if(buffer[0]==_SC('=')){			scsprintf(sq_getscratchpad(v,MAXINPUT),_SC("return (%s)"),&buffer[1]);			memcpy(buffer,sq_getscratchpad(v,-1),(scstrlen(sq_getscratchpad(v,-1))+1)*sizeof(SQChar));			retval=1;		}		i=scstrlen(buffer);		if(i>0){			SQInteger oldtop=sq_gettop(v);			if(SQ_SUCCEEDED(sq_compilebuffer(v,buffer,i,_SC("interactive console"),SQTrue))){				sq_pushroottable(v);				if(SQ_SUCCEEDED(sq_call(v,1,retval,SQTrue)) &&	retval){					scprintf(_SC("/n"));					sq_pushroottable(v);					sq_pushstring(v,_SC("print"),-1);					sq_get(v,-2);					sq_pushroottable(v);					sq_push(v,-4);					sq_call(v,2,SQFalse,SQTrue);					retval=0;					scprintf(_SC("/n"));				}			}						sq_settop(v,oldtop);		}	}}
开发者ID:cartman300,项目名称:Squirrel.NET,代码行数:81,


示例3: emoGetDefaultLocale

/* * Returns default locale */SQInteger emoGetDefaultLocale(HSQUIRRELVM v) {    sq_pushstring(v,            engine->javaGlue->callVoid_String("getDefaultLocale").c_str(), -1);    return 1;}
开发者ID:dreadpiratepj,项目名称:emo-framework-experiment,代码行数:8,


示例4: main

//.........这里部分代码省略.........	// Register some globals.	SetSqString("SHELL_VERSION", SHELL_VERSION_STR, SQTrue);	SetSqString("SQUIRREL_VERSION", SQUIRREL_VERSION_SHORT, SQTrue);	SetSqString("PLATFORM", SHELL_PLATFORM, SQTrue);	SetSqString("CPU_ARCH", SHELL_CPUARCH, SQTrue);	// Initialize libraries.	Init_Base();	Init_IO();	Init_File();	Init_Math();	Init_Util();	Init_Hash();	Init_RegExp();	_RPT0(_CRT_WARN, "--- Libraries initialized/n");	// Set up global variables...	sq_pushroottable(sqvm);	// RVF +	// Initialize squirrel std libraries	//sqstd_register_bloblib(sqvm);	sqstd_register_iolib(sqvm); // We need this one because of the handy "dofile" function	sqstd_register_stringfunctions(sqvm); // This registers only some string functions that are useful and don't clash with Squirrel Shell	// NOTE: Not registering the other libraries, because there are name clashing between Squirrel Shell and SqStdLib	//sqstd_register_systemlib(sqvm);	//sqstd_register_mathlib(sqvm);	//sqstd_register_stringlib(sqvm);	// RVF -	// ... number of command line arguments...	sq_pushstring(sqvm, "__argc", -1);	sq_pushinteger(sqvm, SQInteger(argc - firstArg));	if (SQ_FAILED(sq_newslot(sqvm, -3, SQFalse)))	{		PrintError("ERROR: Failed to create /"__argc/" integer value./n");		Shutdown();		return EXIT_FAILURE;	}	// ... and arguments themselves.	sq_pushstring(sqvm, "__argv", -1);	sq_newarray(sqvm, 0);	for (i = firstArg; argv[i]; ++i)	{		sq_pushstring(sqvm, argv[i], -1);		sq_arrayappend(sqvm, -2);	}	if (SQ_FAILED(sq_newslot(sqvm, -3, SQFalse)))	{		PrintError("ERROR: Failed to create /"__argv/" array./n");		Shutdown();		return EXIT_FAILURE;	}	sq_pop(sqvm, 1);	// Load and run script.	SQInteger result = EXIT_SUCCESS;	if (fileName && LoadScript(fileName))	{		sq_pushroottable(sqvm);		if (SQ_FAILED(sq_call(sqvm, 1, SQTrue, isDebug ? SQTrue : SQFalse)))		{			if (!silent)
开发者ID:ruifig,项目名称:nutcracker,代码行数:67,


示例5: sq_pushroottable

void Squirrel::AddClassBegin(const char *class_name){	sq_pushroottable(this->vm);	sq_pushstring(this->vm, OTTD2SQ(class_name), -1);	sq_newclass(this->vm, SQFalse);}
开发者ID:Latexi95,项目名称:openttd,代码行数:6,


示例6: copy_values_between_vms

/*** Copies values from State src to State dst.*/static SQRESULT copy_values_between_vms (HSQUIRRELVM dst, HSQUIRRELVM src, int argc, int argIdx){    SQRESULT _rc_;    sq_reservestack(dst, argc + 20);    argc += argIdx; //we will work with argc args starting at argIdx    for (; argIdx < argc; argIdx++)    {        switch (sq_gettype(src, argIdx))        {        case OT_INTEGER:            SQ_GET_INTEGER(src, argIdx, vint);            sq_pushinteger(dst, vint);            break;        case OT_FLOAT:            SQ_GET_FLOAT(src, argIdx, vfloat);            sq_pushfloat (dst, vfloat);            break;        case OT_BOOL:            SQ_GET_BOOL(src, argIdx, vbool);            sq_pushbool (dst, vbool);            break;        case OT_STRING:        {            SQ_GET_STRING(src, argIdx, vstr)            sq_pushstring (dst, vstr, vstr_size);        }        break;        case OT_ARRAY:        {            SQInteger size = sq_getsize(src, argIdx);            sq_newarray(dst, size);            for(SQInteger i=0; i<size; ++i)            {                sq_pushinteger(src, i);                sq_get(src, -2);                sq_pushinteger(dst, i);                if(copy_values_between_vms(dst, src, 1, sq_gettop(src)) != SQ_OK) return SQ_ERROR;                sq_poptop(src);                sq_set(dst, -3);            }        }        break;        case OT_TABLE:        {            sq_newtable(dst);            sq_pushnull(src);            while(sq_next(src, -2) == SQ_OK)            {                SQInteger src_top = sq_gettop(src);                if(copy_values_between_vms(dst, src, 1, src_top-1) != SQ_OK                        || copy_values_between_vms(dst, src, 1, src_top) != SQ_OK) return SQ_ERROR;                sq_newslot(dst, -3, SQFalse);                sq_pop(src, 2);            }            sq_pop(src,1);        }        break;        case OT_USERPOINTER:        {            SQUserPointer ptr;            sq_getuserpointer(src, argIdx, &ptr);            sq_pushuserpointer(dst, ptr);        }        break;        case OT_NULL:            sq_pushnull(dst);            break;        default:            return SQ_ERROR;        }    }    return SQ_OK;}
开发者ID:The-Mad-Pirate,项目名称:squilu,代码行数:84,


万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。