我正在尝试使用 btVector3 绑定类。将 btVector3 与构造函数绑定可以正常工作。绑定函数如:
void SetPosition(const btVector3& position)
工作正常,但绑定这个:
btVector3 GetPosition()
给我以下错误:
错误 C2719:“未命名参数”:带有 __declspec(align('16')) 的形式参数不会对齐
我了解 btVector3 已对齐,如何修复/解决此问题?
不知道它是否是完全相同的问题(如果它仍然与您相关,差不多两个月后),但我在使用 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 定义乘法运算符时。我希望这是一个类似的修复。