至于LUA环境配置什么的前面的文章已经讲得很详细了此处不再赘述废话少说直接进入正题.
一、先说在C++中的情况:先来看下我们要读取的这个LUA文件A.LUA的内容如下:
TT={1,2,3,4,5,6,7,8,9} SS={A="THIS IS A STRING FROM LUA TABLE",B="TEST"}
然后我们的C++中的代码看起来是酱紫的.PS:等你熟悉后你可以随心所欲的写,我这只是一个简单的示例.
int main(int argc, char* argv[]) { lua_State* L; L = luaL_newstate(); luaL_openlibs(L); if (luaL_dofile(L,"A.lua") != 0) std::cout<<"LOAD LUA FILE ERROR"<<std::endl; int nTop = lua_gettop(L); lua_getglobal(L,"TT");//TT入栈 size_t i = 1 ; while (i<=lua_rawlen(L,-1))//获取TT的长度 { lua_rawgeti(L,-1,i++);//获取TT中第i个元素的值 std::cout<<" "<<lua_tointeger(L,-1); lua_pop(L,1); } lua_getglobal(L,"SS");//SS入栈 lua_getfield(L,-1,"A");//SS[A]="THIS IS A STRING FROM LUA TABLE" std::cout<<" "<<lua_tostring(L,-1)<<std::endl; lua_settop(L,nTop); return 0; }
二、然后我们来看下在LUA脚本中的情况.代码如下:
t1 = {a=10, b=20, c = 30};t1.m = 100;t1.n = 101 for k, v in pairs(t1) do print(k, v) end print("********************************") t = {10, 20, 30,40,50,60,70} for k, v in pairs(t) do print(k, v) end
好了,今天的内容很简单,自己动手写一遍就什么都明白了,我也就不多说什么了.拜拜