【问题标题】:Bind function returning btVector3 with luabind使用 luabind 绑定返回 btVector3 的函数
【发布时间】:2012-11-06 10:46:58
【问题描述】:

我正在尝试使用 btVector3 绑定类。将 btVector3 与构造函数绑定可以正常工作。绑定函数如:

void SetPosition(const btVector3& position)

工作正常,但绑定这个:

btVector3 GetPosition()

给我以下错误:

错误 C2719:“未命名参数”:形式参数 __declspec(align('16')) 不会对齐

我了解 btVector3 已对齐,如何修复/解决此问题?

【问题讨论】:

    标签: luabind bullet


    【解决方案1】:

    不知道是否是完全相同的问题(如果它仍然与您相关,差不多两个月后),但我在使用 Luabind 绑定 Bullet btTransforms 时遇到了麻烦。例如,这给出了您描述的相同错误:

    void bindBtTransform(lua_State *L) {
        luabind::module(L)
        [
            luabind::class_<btTransform>("btTransform")
                // constructors
                .def(luabind::constructor<>())
    
                // methods
                // INCORRECT -------------------------------------------------------
                .def("getOrigin", &btTransform::getOrigin)
        ];
    
        return;
    }
    

    但是,当我给出 getOrigin() 函数的完整签名时,它起作用了:

    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 定义乘法运算符时。我希望这是一个类似的修复。

    【讨论】:

      猜你喜欢
      • 2013-08-13
      • 2011-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 2013-02-08
      • 2011-12-19
      • 1970-01-01
      相关资源
      最近更新 更多