我使用LiBooStpyPython和Pyste生成器将Python嵌入到C++的LIB中。在
我设法生成了一个lib类的包装器。它可以编译,但我不能在Python中使用它,因为函数签名不同。在
例如:
Pyste为MyLI::Obj::TraseTeA.()方法生成此C++代码:
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(MyLib_Entity_Translate_overloads_3_4, Translate, 3, 4)
// Module ======================================================================
BOOST_PYTHON_MODULE(mylib)
{
scope* MyLib_Object_scope = new scope(
class_< MyLib::Object, boost::noncopyable, MyLib_Object_Wrapper >("Object", init< const MyLib::String& >())
.def("Translate", (void (MyLib::Entity::*)(const double&, const double&, const double&, const MyLib::Entity*) &MyLib::Entity::Translate, MyLib_Entity_Translate_overloads_3_4())
/*...*/
};
}
当我用Python调用它时
^{pr2}$我有这个错误
Error in Python: : Python argument types in Object.Translate(Object, float, float, float) did not match C++ signature: Translate(MyLib::Entity {lvalue}, double, double, double) : File "testobj.py", line 2, in this.Translate(0.0, 1.0, 0.0)
注意MyLib::Object继承自MyLib::Entity
我该怎么办?是否也导出MyLib::Entity?把我所有的C++代码从双转换为浮点?在
目前没有回答
相关问题 更多 >
编程相关推荐