首先利用lua提供的函数luaL_dofile来执行一个lua脚本。 可以看到有两个过程,首先luaL_loadfile函数将lua文件加载进来然后进行词法语法语义分析,得到一个closure函数放入栈中,接着调用lua_pcall函数来执行栈顶的closure。 我们先来看看第一个过程: 首先在l ...
分类:
其他好文 时间:
2018-03-19 17:36:00
阅读次数:
209
前两篇文章中,已经介绍了使用vs2010编译lua5.1源码生成lua.lib 和 vs项目中使用c++调用lua,可以保证demo在vs上运行起来了。这里再详细介绍下c++和lua之间的相互调用以及原理。
c++与lua直接的调用,实际上通过一个栈结构来传递数据,该栈结构栈顶的索引值为-1,向栈底方向索引值依次为-1 ,-2......栈顶索引为1.栈结构里可以放函数,表,字符串,整形等各种l...
分类:
编程语言 时间:
2014-08-24 11:40:52
阅读次数:
290
最近在学习Lua,脑子不好使,怕忘记了,所以记下来方便以后查阅:首先,来了解几个概念: lua_State Lua解释器 lua_open 打开一个lua解释器,返回lua_State指针 luaL_openlibs 加载默认lua库 luaL_dofile 解释执行脚本文件 lua...
分类:
其他好文 时间:
2014-08-04 20:37:57
阅读次数:
153
通过c++调用lua 脚本, 环境VC++6.0 lua sdk 5.1.4 在调用前先认识几个函数。1.调用lua_open()将创建一个指向Lua解释器的指针。2. luaL_openlibs()函数加载Lua库。3.使用luaL_dofile()加载脚本并运行脚本。4. lua_close()...