将lua中的值放入栈顶

来源:互联网 发布:红帽linux版本 编辑:程序博客网 时间:2024/06/10 10:51
//将表内的值或普通值放入栈顶void popval(lua_State *L,string val){int pos=0,oldpos=0;if((pos=val.find('.',pos))!=string::npos){string ptr(val,0,pos-oldpos);lua_getglobal(L, ptr.c_str());pos++;oldpos = pos;}else{lua_getglobal(L, val.c_str());return;}while((pos=val.find('.',pos))!=string::npos){string ptr(val,oldpos,pos-oldpos);lua_pushstring(L,ptr.c_str());lua_gettable(L,-2);pos++;oldpos = pos;}string ptr(val,oldpos,val.size()-oldpos);lua_pushstring(L,ptr.c_str());lua_gettable(L,-2);}

用法:

popval(L,"normal_num");int nv = lua_tonumber(L,-1);popval(L,"t.table_str");string str = lua_tostring(L,-1);

其中测试用lua脚本:

normal_num = 152;t = {table_str = "abctest"};


原创粉丝点击