Всем привет.
Есть класс
class MyType
{
int Val;
int GetVal() { return Val; }
};
Одна dll-ка экспортирует этот класс в Питон:
BOOST_PYTHON_MODULE(PythonModule1)
{
class_<MyType>("pyMyType")
.def("GetVal",&MyType::GetVal)
}
Вторая dll-ка пытается принять этот класс из Питона как параметр функции:
class pyMyType;
void CppCallback(boost::python::object MyTypeObj)
{
boost::python::extract<pyMyType&> MyTypeObjExt(MyTypeObj);
if (MyTypeObjExt.check()) {
// 1. MyType here
}
}
BOOST_PYTHON_MODULE(PythonModule2)
{
def("CppCallback", CppCallback);
}
Проблема в том, что extract<> в CppCallback() не вытягивает тип pyMyType (и MyType тоже), хотя в дебаге видно, что имя типа MyTypeObj есть pyMyType.
Как правильно принять этот параметр?