Äúµ±Ç°µÄλÖãºÊ×Ò³ > IT±à³Ì > C++
| CÓïÑÔ | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | ѧÊõÓë´úÂë | cnn¾í»ýÉñ¾­ÍøÂç | gnn | ͼÏñÐÞ¸´ | Keras | Êý¾Ý¼¯ | Neo4j | ×ÔÈ»ÓïÑÔ´¦Àí | Éî¶Èѧϰ | ҽѧCAD | ҽѧӰÏñ | ³¬²ÎÊý | pointnet | pytorch | Òì³£¼ì²â | Transformers | Çé¸Ð·ÖÀà | ֪ʶͼÆ× |

×Ôѧ½Ì³Ì£ºC++ sq_throwerrorº¯Êý´úÂëʾÀý

51×ÔÑ§Íø 2021-06-03 08:12:05
  C++
ÕâÆª½Ì³ÌC++ sq_throwerrorº¯Êý´úÂëʾÀýдµÃºÜʵÓã¬Ï£ÍûÄܰﵽÄú¡£

±¾ÎÄÕûÀí»ã×ÜÁËC++ÖÐsq_throwerrorº¯ÊýµÄµäÐÍÓ÷¨´úÂëʾÀý¡£Èç¹ûÄúÕý¿àÓÚÒÔÏÂÎÊÌ⣺C++ sq_throwerrorº¯ÊýµÄ¾ßÌåÓ÷¨£¿C++ sq_throwerrorÔõôÓã¿C++ sq_throwerrorʹÓõÄÀý×Ó£¿ÄÇô¹§Ï²Äú, ÕâÀᆱѡµÄº¯Êý´úÂëʾÀý»òÐí¿ÉÒÔΪÄúÌṩ°ïÖú¡£

ÔÚÏÂÎÄÖÐÒ»¹²Õ¹Ê¾ÁËsq_throwerrorº¯ÊýµÄ30¸ö´úÂëʾÀý£¬ÕâЩÀý×ÓĬÈϸù¾ÝÊÜ»¶Ó­³Ì¶ÈÅÅÐò¡£Äú¿ÉÒÔΪϲ»¶»òÕ߸оõÓÐÓõĴúÂëµãÔÞ£¬ÄúµÄÆÀ¼Û½«ÓÐÖúÓÚÎÒÃǵÄÏµÍ³ÍÆ¼ö³ö¸ü°ôµÄC++´úÂëʾÀý¡£

ʾÀý1: _blob_resize

static SQInteger _blob_resize(HSQUIRRELVM v){	SETUP_BLOB(v);	SQInteger size;	sq_getinteger(v,2,&size);	if(!self->Resize(size))		return sq_throwerror(v,_SC("resize failed"));	return 0;}
¿ª·¢ÕßID:ShaunOfTheLive£¬ÏîÄ¿Ãû³Æ:OpenCoasterTycoon£¬´úÂëÐÐÊý:9£¬


ʾÀý2: base_callee

static SQInteger base_callee(HSQUIRRELVM v){	if(v->_callsstacksize > 1)	{		v->Push(v->_callsstack[v->_callsstacksize - 2]._closure);		return 1;	}	return sq_throwerror(v,_SC("no closure in the calls stack"));}
¿ª·¢ÕßID:Cucurbitace£¬ÏîÄ¿Ãû³Æ:attract£¬´úÂëÐÐÊý:9£¬


ʾÀý3: Transportstop

//// Transport stop//SQInteger Transportstop(HSQUIRRELVM vm){    SQInteger numargs = sq_gettop(vm);    // check parameter count    if(numargs > 1) {        return sq_throwerror(vm, "too many parameters, expected at most 0");    }    // call the implementation    try {        AudioEngine::instance().transportStop();    }    catch(std::exception const& e) {        return sq_throwerror(vm, e.what());    }    // void method, returns no value    return 0;}
¿ª·¢ÕßID:bipscript£¬ÏîÄ¿Ãû³Æ:bipscript£¬´úÂëÐÐÊý:21£¬


ʾÀý4: sqlang_sr_exit

static SQInteger sqlang_sr_exit (HSQUIRRELVM J){	if(_sr_J_env.JJ==J) {		_sr_J_env.JJ_exit = 1;	} else {		_sr_J_env.J_exit = 1;	}	return sq_throwerror(J, _SC("~~ksr~exit~~"));}
¿ª·¢ÕßID:linuxmaniac£¬ÏîÄ¿Ãû³Æ:kamailio£¬´úÂëÐÐÊý:9£¬


ʾÀý5: array_top

static SQInteger array_top(HSQUIRRELVM v){	SQObject &o=stack_get(v,1);	if(_array(o)->Size()>0){		v->Push(_array(o)->Top());		return 1;	}	else return sq_throwerror(v,_SC("top() on a empty array"));}
¿ª·¢ÕßID:Ayutac£¬ÏîÄ¿Ãû³Æ:OpenTTD£¬´úÂëÐÐÊý:9£¬


ʾÀý6: _blob_reserve

static SQRESULT _blob_reserve(HSQUIRRELVM v){	SETUP_BLOB(v);	SQInteger size;	sq_getinteger(v,2,&size);	if(!self->GrowBufOf(size))		return sq_throwerror(v,_SC("reserve failed"));	return 0;}
¿ª·¢ÕßID:gdos£¬ÏîÄ¿Ãû³Æ:squilu-1£¬´úÂëÐÐÊý:9£¬


ʾÀý7: _system_rename

static SQInteger _system_rename(HSQUIRRELVM v){	const SQChar *oldn,*newn;	sq_getstring(v,2,&oldn);	sq_getstring(v,3,&newn);	if(screname(oldn,newn)==-1)		return sq_throwerror(v,_SC("rename() failed"));	return 0;}
¿ª·¢ÕßID:ShotaroTsuji£¬ÏîÄ¿Ãû³Æ:mona£¬´úÂëÐÐÊý:9£¬


ʾÀý8: _system_system

static SQInteger _system_system(HSQUIRRELVM v){	const SQChar *s;	if(SQ_SUCCEEDED(sq_getstring(v,2,&s))){		sq_pushinteger(v,scsystem(s));		return 1;	}	return sq_throwerror(v,_SC("wrong param"));}
¿ª·¢ÕßID:ShotaroTsuji£¬ÏîÄ¿Ãû³Æ:mona£¬´úÂëÐÐÊý:9£¬


ʾÀý9: sqstd_getfile

SQRESULT sqstd_getfile(HSQUIRRELVM v, SQInteger idx, SQFILE *file){	SQFile *fileobj = NULL;	if(SQ_SUCCEEDED(sq_getinstanceup(v,idx,(SQUserPointer*)&fileobj,(SQUserPointer)SQSTD_FILE_TYPE_TAG))) {		*file = fileobj->GetHandle();		return SQ_OK;	}	return sq_throwerror(v,_SC("not a file"));}
¿ª·¢ÕßID:Arpanet81£¬ÏîÄ¿Ãû³Æ:emo-framework£¬´úÂëÐÐÊý:9£¬


ʾÀý10: array_insert

static SQInteger array_insert(HSQUIRRELVM v){	SQObject &o=stack_get(v,1);	SQObject &idx=stack_get(v,2);	SQObject &val=stack_get(v,3);	if(!_array(o)->Insert(tointeger(idx),val))		return sq_throwerror(v,_SC("index out of range"));	return 0;}
¿ª·¢ÕßID:Ayutac£¬ÏîÄ¿Ãû³Æ:OpenTTD£¬´úÂëÐÐÊý:9£¬


ʾÀý11: validate_format

static SQInteger validate_format(HSQUIRRELVM v, SQChar *fmt, const SQChar *src, SQInteger n,SQInteger &width){	SQChar *dummy;	SQChar swidth[MAX_WFORMAT_LEN];	SQInteger wc = 0;	SQInteger start = n;	fmt[0] = '%';	while (isfmtchr(src[n])) n++;	while (scisdigit(src[n])) {		swidth[wc] = src[n];		n++;		wc++;		if(wc>=MAX_WFORMAT_LEN)			return sq_throwerror(v,_SC("width format too long"));	}	swidth[wc] = '/0';	if(wc > 0) {		width = scstrtol(swidth,&dummy,10);	}	else		width = 0;	if (src[n] == '.') {	    n++;    			wc = 0;		while (scisdigit(src[n])) {			swidth[wc] = src[n];			n++;			wc++;			if(wc>=MAX_WFORMAT_LEN)				return sq_throwerror(v,_SC("precision format too long"));		}		swidth[wc] = '/0';		if(wc > 0) {			width += scstrtol(swidth,&dummy,10);		}	}	if (n-start > MAX_FORMAT_LEN )		return sq_throwerror(v,_SC("format too long"));	memcpy(&fmt[1],&src[start],((n-start)+1)*sizeof(SQChar));	fmt[(n-start)+2] = '/0';	return n;}
¿ª·¢ÕßID:elmindreda£¬ÏîÄ¿Ãû³Æ:Nori£¬´úÂëÐÐÊý:44£¬


ʾÀý12: _regexp_constructor

static SQInteger _regexp_constructor(HSQUIRRELVM v){	const SQChar *error,*pattern;	sq_getstring(v,2,&pattern);	SQRex *rex = sqstd_rex_compile(pattern,&error);	if(!rex) return sq_throwerror(v,error);	sq_setinstanceup(v,1,rex);	sq_setreleasehook(v,1,_rexobj_releasehook);	return 0;}
¿ª·¢ÕßID:469306621£¬ÏîÄ¿Ãû³Æ:Languages£¬´úÂëÐÐÊý:10£¬


ʾÀý13: sq_mysql_statement_reset

static SQRESULT sq_mysql_statement_reset(HSQUIRRELVM v){	SQ_FUNC_VARS_NO_TOP(v);	GET_mysql_statement_INSTANCE();    if (dlmysql_stmt_reset(self->stmt)) {        return sq_throwerror(v, _SC("error reseting prepared statement. MySQL: %s"), dlmysql_stmt_error(self->stmt));    }	return 0;}
¿ª·¢ÕßID:mingodad£¬ÏîÄ¿Ãû³Æ:squilu£¬´úÂëÐÐÊý:10£¬


ʾÀý14: sq_mysql_result_col_name

static SQRESULT sq_mysql_result_col_name(HSQUIRRELVM v){	SQ_FUNC_VARS_NO_TOP(v);	GET_mysql_result_INSTANCE();	SQ_GET_INTEGER(v, 2, col);	if(col < 0 || col > dlmysql_num_fields(self)-1)		return sq_throwerror(v, _SC("invalid col number (" _PRINT_INT_FMT ")"), col);	MYSQL_FIELD *fields = dlmysql_fetch_fields(self);	sq_pushstring(v, fields[col].name, -1);	return 1;}
¿ª·¢ÕßID:mingodad£¬ÏîÄ¿Ãû³Æ:squilu£¬´úÂëÐÐÊý:10£¬


ʾÀý15: sqlang_sr_drop

static SQInteger sqlang_sr_drop (HSQUIRRELVM J){	if(_sr_J_env.JJ==J) {		_sr_J_env.JJ_exit = 1;	} else {		_sr_J_env.J_exit = 1;	}	sr_kemi_core_set_drop(NULL);	return sq_throwerror(J, _SC("~~ksr~exit~~"));}
¿ª·¢ÕßID:linuxmaniac£¬ÏîÄ¿Ãû³Æ:kamailio£¬´úÂëÐÐÊý:10£¬


ʾÀý16: sq_lib_bind_func

static SQInteger sq_lib_bind_func(HSQUIRRELVM v){    void **modbuf;    void *mod;    void *sym;    const SQChar *symname;    const char *rettype;    sq_getuserdata(v, 1, (void**)&modbuf, NULL);    mod = *modbuf;    sq_getstring(v, 2, &rettype);    sq_getstring(v, 3, &symname);    sym = GET_SYM(mod, symname);    if (!sym)        return sq_throwerror(v, "Cannot find symbol");    int nparam = sq_getsize(v, 4);    int size = sizeof(FFIFunc) + sizeof(ffi_type*) * nparam;    FFIFunc *ffibuf = (FFIFunc*)sq_newuserdata(v, size);    sq_push_delegate_table(v, FFI_LIB_FUNC_TAG);    sq_setdelegate(v, -2);//    printf("Allocated %d bytes at %p/n", size, ffibuf);    ffibuf->func = sym;    ffibuf->rettype = *rettype;    int i;    for (i = 0; i < nparam; i++) {        sq_pushinteger(v, i);        sq_get(v, 4);        ffibuf->params[i] = get_ffi_type(v, -1);        if (!ffibuf->params[i])            return SQ_ERROR;        sq_poptop(v);    }    int res = ffi_prep_cif(&ffibuf->cif, FFI_DEFAULT_ABI, nparam, char2ffi_type(*rettype), ffibuf->params);    if (res != FFI_OK)        return sq_throwerror(v, "Error in ffi_prep_cif");    return 1;}
¿ª·¢ÕßID:gdos£¬ÏîÄ¿Ãû³Æ:squilu-1£¬´úÂëÐÐÊý:43£¬


ʾÀý17: sq_arrayresize

SQRESULT sq_arrayresize(HSQUIRRELVM v,SQInteger idx,SQInteger newsize){	sq_aux_paramscheck(v,1);	SQObjectPtr *arr;	_GETSAFE_OBJ(v, idx, OT_ARRAY,arr);	if(newsize >= 0) {		_array(*arr)->Resize(newsize);		return SQ_OK;	}	return sq_throwerror(v,_SC("negative size"));}
¿ª·¢ÕßID:ACMEware£¬ÏîÄ¿Ãû³Æ:Paper-Hurricane£¬´úÂëÐÐÊý:11£¬


ʾÀý18: program_main

static SQInteger program_main(HSQUIRRELVM v){	if(sq_gettop(v) != (1 + 3)){ //roottable, userpointer, co_cpu, co_ppu		return sq_throwerror(v, wgT("argument number error"));	}	struct program_config *d;	SQRESULT r =  qr_userpointer_get(v, (SQUserPointer) &d);	if(SQ_FAILED(r)){		return r;	}	HSQUIRRELVM co_cpu, co_ppu;	if(SQ_FAILED(sq_getthread(v, 3, &co_cpu))){		return sq_throwerror(v, wgT("thread error"));	}	if(SQ_FAILED(sq_getthread(v, 4, &co_ppu))){		return sq_throwerror(v, wgT("thread error"));	}	SQInteger state_cpu = sq_getvmstate(co_cpu);	SQInteger state_ppu = sq_getvmstate(co_ppu);	const long sleepms = d->compare == true ? 6 : 2; //W29C040 ¤Ç compare ¤ò¤¹¤ë¤È¡¢error ¤¬³ö¤ë¤Î¤Ç³ö¤Ê¤¤
C++ sqinfo_hasº¯Êý´úÂëʾÀý
C++ sq_pushstringº¯Êý´úÂëʾÀý
ÍòÊÂOK×ÔÑ§Íø£º51×ÔÑ§Íø_Èí¼þ×ÔÑ§Íø_CAD×ÔÑ§Íø×Ôѧexcel¡¢×ÔѧPS¡¢×ÔѧCAD¡¢×ÔѧCÓïÑÔ¡¢×Ôѧcss3ʵÀý£¬ÊÇÒ»¸öͨ¹ýÍøÂç×ÔÖ÷ѧϰ¹¤×÷¼¼ÄܵÄ×Ôѧƽ̨£¬ÍøÓÑϲ»¶µÄÈí¼þ×ÔÑ§ÍøÕ¾¡£