2011-02-08 3 views
2

채택, C++에서 객체의 테이블을 돌아, 나는 내가정책 luabind를 사용

class_<lua_Object> reg("Object"); 
reg 
    .def(constructor<float,float>()) 
    ; 
module(L) [ reg ]; 

module(L) 
[ 
    def("create_table", &create_table) 
] 

및 lua_Object로 함수를 등록 C++

luabind::object create_table(lua_State *L) 
{ 
    luabind::object result = luabind::newtable(L); 
    int index = 1; 
    for (...) { 
    lua_Object *o = new lua_Object(...); 
    result[ index ++ ] = o; 
    } 
    return result; 
} 

에서 개체의 테이블을 생성

루아 바인드에게 테이블 (새로운 lua_Object (...))에 저장된 객체의 소유권을 가져 오라고 어떻게 말할 수 있습니까? 주위에 어떤 일이 일어날까요?

감사합니다 -

답변

2

당신은 raw(_1) 정책 create_table를 등록하지 않아도, 보조 노트에

result[ index ++ ] = luabind::object(L, o, luabind::adopt(luabind::result)); 

result[ index ++ ] = o 

교체?

+1

감사합니다. 방금 시도해 봤지만 제대로 작동합니다. 원시 정책은 더 이상 필요하지 않습니다. http://www.rasterbar.com/products/luabind/docs.html#raw, lua_State *를 첫 번째 매개 변수로 입력하면 luaBind가 자동으로이를 감지합니다. – user608003