时间:2021-05-22
C++端:
#include "stdafx.h"lua_State *L;void load_lua(lua_State **L,char *filename){ *L=luaL_newstate(); luaL_openlibs(*L); if(luaL_loadfile(*L,filename) || lua_pcall(*L,0,0,0)){ luaL_error(*L,"load file error! %s",lua_tostring(*L,-1)); }}int _tmain(int argc, _TCHAR* argv[]){ load_lua(&L,"raw.lua"); //此处若直接传入L会出错 lua_getglobal(L,"gettable"); if(lua_pcall(L,0,1,0) !=0){ luaL_error(L,"pcall wrong %s",lua_tostring(L,-1)); } luaL_checktype(L,1,LUA_TTABLE); int n=lua_objlen(L,1); printf("n = %d\n",n); lua_pushstring(L,"ee"); lua_rawseti(L,1,5); //t[n]=v,n为第三个参数,v是栈顶元素 n=lua_objlen(L,1); printf("n = %d\n",n); int i; for(i=1;i<=n;i++){ lua_rawgeti(L,1,i); printf("%s\n",lua_tostring(L,-1)); } return 0;}lua脚本:
function gettable() tb={ "aa","bb","cc","dd"} return tb end
运行输出的结果为:
n = 4 n = 5 aa bb cc dd ee声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在上一篇文章(C调用lua函数)中,讲述了如何用c语言调用lua函数,通常,A语言能调用B语言,反过来也是成立的。正如Java与c语言之间使用JNI来互调,Lu
本教程将介绍如何在Lua里面调用c/c++函数。在Lua里面调用c/c++函数其实是比较简单,本文将通过两个示例演示具体的做法:一个是求平均数,另一个是打印lu
1简介由cleanC实现。需要被宿主程序调用,可以注入C函数。2语法约定Lua的语法基于BNF的语法规则。Lua对大小写敏感。2.1保留关键字C语言中没有的关键
在Lua编程语言中的while循环语句,只要给定的条件为真时将重复执行的目标语句。语法Lua编程语言中的while循环的语法是:复制代码代码如下:while(c
Lua是脚本语言,最大的优势就是轻巧灵便,不用编译。当C的框架写好,只要更改lua的相应处理即可以更改功能,并且不用重新编译。以下是在C中调用Lua资源方法的示