How to use a Lua variable in C++?

Asked

Viewed 234 times

6

I can’t get value from a Lua matrix to use in C++.

So I take the value of the variable M:

//No LUA    
M = 85  

//No C++    
L = lua_open();
luaL_loadfile(L, "teste.lua");
lua_pcall(L, 0, 0, 0);

int m;

lua_getglobal(L, "M");
m = lua_tonumber(L, -1);

cout << m;

But I don’t know how to get the index value of a matrix as follows below:

// LUA
MATRIZ =
{

   {4,2,2,6},
   {2,1,1,2},
   {2,1,1,2},
   {5,2,2,3}

}

How to get the value of this matrix?

1 answer

4

You can use the method lua_gettable.

  1. You need to add the index to the stack via lua_pushinteger.
  2. The key is superimposed with the element.

You can also try:

lua_getglobal(L, "MATRIZ")
lua_rawgeti(L,-1,1) -- {4,2,2,6}
lua_rawgeti(L,-1,2) -- 2

Solutions from my question on Stackoverflow(EN).

Browser other questions tagged

You are not signed in. Login or sign up in order to post.