关于在C++中调用lua脚本的几个简单问题、、求达人!3Q!
麻烦说下下面几句代码的具体意义。谢谢!lua_State*p=lua_open();luaopen_base(p);luaopen_math(p);luaopen_str...
麻烦说下下面几句代码的具体意义。谢谢!
lua_State* p = lua_open();
luaopen_base(p);
luaopen_math(p);
luaopen_string(p);
lua_settop(p, 0);
lua_getglobal(p, "key");
int temp = lua_isstring(p, 1);
const char* str = lua_tostring(p, 1);
lua_close(p); 展开
lua_State* p = lua_open();
luaopen_base(p);
luaopen_math(p);
luaopen_string(p);
lua_settop(p, 0);
lua_getglobal(p, "key");
int temp = lua_isstring(p, 1);
const char* str = lua_tostring(p, 1);
lua_close(p); 展开
1个回答
2013-11-21
展开全部
lua_State* p = lua_open();
//创建lua虚拟机的环境。#define lua_open() luaL_newstate()
luaopen_base(p);
luaopen_math(p);
luaopen_string(p);
//以上加入这些库,就像C包含头文件
lua_settop(p, 0);
//清空栈空间
lua_getglobal(p, "key");
//取一个全局变量为“key”,压入栈顶
int temp = lua_isstring(p, 1);
//当判断值是一个字符串或是一个数字(数字总能转换成字符串)时,返回 1 ,否则返回 0
const char* str = lua_tostring(p, 1);
//把栈顶的数据转换成字符串。这个函数没有出栈功能,
可以使用lua_pop(p,1)将栈顶元素弹出
lua_close(p);
//释放资源
//创建lua虚拟机的环境。#define lua_open() luaL_newstate()
luaopen_base(p);
luaopen_math(p);
luaopen_string(p);
//以上加入这些库,就像C包含头文件
lua_settop(p, 0);
//清空栈空间
lua_getglobal(p, "key");
//取一个全局变量为“key”,压入栈顶
int temp = lua_isstring(p, 1);
//当判断值是一个字符串或是一个数字(数字总能转换成字符串)时,返回 1 ,否则返回 0
const char* str = lua_tostring(p, 1);
//把栈顶的数据转换成字符串。这个函数没有出栈功能,
可以使用lua_pop(p,1)将栈顶元素弹出
lua_close(p);
//释放资源
更多追问追答
追问
int temp = lua_isstring(p, 1);
const char* str = lua_tostring(p, 1);
这2个函数后面都有个1,代表啥啊??谢谢!!
追答
C与lua交互式通过栈来实现的。1是栈的序号,从栈顶计数是-1,向栈底方向递减,从栈底计数是1,向栈顶递增
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询