这篇教程C++ sq_pushstring函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sq_pushstring函数的典型用法代码示例。如果您正苦于以下问题:C++ sq_pushstring函数的具体用法?C++ sq_pushstring怎么用?C++ sq_pushstring使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sq_pushstring函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: sq_pushstringvoid CSquirrelVM::Push(const CString& str){ sq_pushstring(m_pVM, str.Get(), str.GetLength());}
开发者ID:RAG20,项目名称:IV-Network,代码行数:4,
示例2: Interactivevoid 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_pushroottablevoid 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,
|