получение структуры из Питона через boost::python
От: Аноним  
Дата: 14.04.11 08:07
Оценка:
Всем привет.

Есть класс
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.
Как правильно принять этот параметр?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.