Re: Table madness :(
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
- Subject: Re: Table madness :(
- From: Ariel Manzur <listas@...>
- Date: 2003年9月23日 20:10:29 -0300
At 23:40 23/09/2003 +0100, you wrote:
[..]
function instance:debug()
print("pos :"..self.Pos)
end
[...]
and then do the following
lua_getglobal(m_LuaVM, "myscript");
if(lua_istable(m_LuaVM,-1)) {
lua_pushstring(m_LuaVM,"debug");
lua_gettable(m_LuaVM,-2);
if(lua_isfunction(m_LuaVM,-1))
lua_call(m_LuaVM, 0, 0);
else
lua_pop(m_LuaVM,1);
}
now this actually works if I don't reference self.Pos and will print the
string. but if I reference anything that
I think the problem is that you're not passing 'self' to the function..
when you call a function from lua using the colon, it's like calling it
with self, for example 'object:method()' is actually
'object.method(object)'. So when using the C API, you need to do this by
hand. You can probably do a 'lua_insert(ls, -2)', to swap the function with
the table, and then 'lua_call(ls, 1, 0)', because you're actually sending 1
parameter ('self').
bye..
Ariel.
http://Anime.com.ar
snm