通过这样去把C++非静态方法注册进去失败了!
for (int i = 0; i < lua_methons.size(); i++)
{
LuaMethons *lua = lua_methons.at(i);
lua_pushstring(L, lua->name.c_str());
lua_pushlightuserdata(L, (void *)lua);
lua_pushcclosure(L, LuaResTest::MethonCall, 1);
lua_settable(L, -3);
}
lua_register(L, “log”, LuaResTest::_log);
其中注册这些方法之前调用了
lua_newtable(L);
lua_pushvalue(L, -1);
lua_setglobal(L, “LuaResTest”);
然后注册玩就这样注册
lua_pushstring(L, “new”);
lua_pushcfunction(L, newLuaResTest);
lua_settable(L, -3);
//copy
lua_pushstring(L, “__index”);
lua_pushvalue(L, -2);
lua_settable(L, -3);
通过int lod = luaL_dofile(L, path);这样来加载调用lua代码!返回的代码为1!请高人解答!