서로 전혀 다른 부분이기에 coroutine(thread) 에서 참조를 할수 없어서 nil 을 반환 받는거 같기도 하구요.
upvalue ,setfenv ,getfenv 를 검색키워드로 보고 있는데 과연 맞는것인지요?
lua 코드는 다음과 같은 느낌입니다.
getTable() 함수가 binding 된 c++ 코드 입니다.
--------------------------------------------------------------------------------------------
-- tabletest.lua
--------------------------------------------------------------------------------------------
local co = coroutine.create(
function()
tb = getTable()
if tb ~= nil then
print (tb.name)
end
end
)
coroutine.resume( co )
--------------------------------------------------------------------------------------------
//c++
lua_tinker::table getTable( void )
{
lua_tinker::table tb(g_luaState);
tb.set("name","john");
tb.set("age","16");
tb.set("country","korea");
return tb;
}
--
메일링리스트 링크 : http://groups.google.com/group/luausers-kr