2012-11-06 3 views
1

btVector3을 사용하여 클래스를 바인딩하려고합니다. 생성자와 바인딩 btVector3 잘 작동합니다. 같은 기능을 바인딩 :luabind를 사용하여 btVector3을 반환하는 바인딩 함수

void SetPosition(const btVector3& position) 

것은 잘 작동하지만이 바인딩 : 어떻게 해결하기 위해 내가 btVector3 정렬되는 것을 이해

error C2719: 'unnamed-parameter': formal parameter with __declspec(align('16')) won't be aligned

/해결 방법이 :

btVector3 GetPosition() 

것은 나에게 다음과 같은 오류를 제공합니다 ?

답변

0

정확하게 똑같은 문제가있는 경우 Dunno (그리고 여전히 관련성이있는 경우 거의 2 개월간)이지만 Luabind를 사용하여 총알 btTransforms를 바인딩하는 데 문제가있었습니다. 예를 들어, 이것은 당신이 설명한 것과 같은 오류 준 : 나는 getOrigin() 함수의 전체 서명을 준 경우에는

void bindBtTransform(lua_State *L) { 
    luabind::module(L) 
    [ 
     luabind::class_<btTransform>("btTransform") 
      // constructors 
      .def(luabind::constructor<>()) 

      // methods 
      // INCORRECT ------------------------------------------------------- 
      .def("getOrigin", &btTransform::getOrigin) 
    ]; 

    return; 
} 

를, 그것은 일 :

당신을 위해 작동
void bindBtTransform(lua_State *L) { 
    luabind::module(L) 
    [ 
     luabind::class_<btTransform>("btTransform") 
      // constructors 
      .def(luabind::constructor<>()) 

      // methods 
      // CHANGE TO THIS------------------------------------------------- 
      .def("getOrigin", (const btVector3& (btTransform::*)() const)&btTransform::getOrigin) 
    ]; 

    return; 
} 

희망; 변화를 만들 때 내 문제가 바로 해결되었습니다.

지금도 오류가 계속 발생하지만 btQuaternions에 대한 곱셈 연산자를 정의 할 때만 가능합니다. 나는 그것이 비슷한 문제가되기를 바라고있다.