lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi all,
 
I use  tolua to bind my C++ class to lua.
However, (looking through everywhere on website, ML, and tutorial), I could not figure out how to associate the object pointer and object's methods/fields.
 
In Lua script:
 
_OnEnter_ = function(param)
       local o = GetObjectFromPointer(param);
       o.name;
       o:Move();
end
 
somewhere in native code,
I call this lua function,
 
Object *o = new Object();
 lua_getglobal(mLuaState, "OnEnter");
 lua_pushuserdata(mLuaState, o);
 lua_call(mLuaState, 1, 0);
 
And I have registered function,
 
static int Native_GetObjectFrPtr(lua_State *L)
{
 Object *myObjPtr = (Object *)lua_touserdata(L, -1);
 lua_pushuserdata(L, myObjPtr);
 return 1;
}
 
 
I'm sure the correct address (pointer to the object)is successfully passed to lua stack, but I keep getting the error message that complain I attemp to index local 'o' (a userdta value).
There must be something I miss which probably need to pass tag to lua.
I have to  to use Lua 4 , therefore, it become more difficult for me to figure out how this works.
 
I would very much appreciate if someone can help me out with this problem.
 
Thanks,
Nelson



Post your free ad now! Yahoo! Canada Personals