[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: passing lua table from c++ to lua script
- From: Maha Akkari <maha.akkari@...>
- Date: Sun, 20 May 2012 04:38:06 +0300
hello,
I have spent the past 6 hours trying to solve this ! and i coulnt get anywhere :s
I want to be able to create a lua table in a c++ file and then pass that to a lua script file, which has the following lua function:
function MTable (t)
local n=#t
for i=1,n do
print(t[i])
end
end
i dynamically created a one dimensional array with two strings:
lua_newtable(L);
lua_pushstring(L,"10.10.1.1");
lua_pushstring(L,"10.10.1.2");
lua_rawseti(L,-3,2);
lua_rawseti(L,-2,1);
so now i have the table on top of the stack.
I have verified it by writting this :if( lua_istable(L,lua_gettop(L))) which returned 1, which means it is a table.
then I did this:
lua_getglobal(L, "MTable"); // push the lua function onto the stack
uint32_t result = lua_pcall(L, 1, 0, 0); //argument 1 is for the table
if (result) {
printf(stderr, "Failed to run script: %s\n", lua_tostring(L, -1));
exit(1);
}
so I got that error:
Failed to run script: attempt to call a table value
Kindly note that the file has several other functions that i am calling successfully from c++.
can somebody please help me solve this error ? can this be a bug from LUA? cz i followed the steps very correctly...i guess !