1

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

void SetPosition(const btVector3& position)

工作正常,但绑定这个:

btVector3 GetPosition()

给我以下错误:

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

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

4

1 回答 1

0

不知道它是否是完全相同的问题(如果它仍然与您相关,差不多两个月后),但我在使用 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 定义乘法运算符时。我希望这是一个类似的修复。

于 2012-12-27T19:09:09.383 回答