关于在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);
展开
 我来答
匿名用户
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);
//释放资源
更多追问追答
追问
int temp = lua_isstring(p, 1);   

const char* str = lua_tostring(p, 1);

这2个函数后面都有个1,代表啥啊??谢谢!!
追答
C与lua交互式通过栈来实现的。1是栈的序号,从栈顶计数是-1,向栈底方向递减,从栈底计数是1,向栈顶递增
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式