передать обратный вызов из Python в C ++ с помощью boost :: python

Я хочу передать обратный вызов из моего кода Python в c ++

Я хочу, чтобы мой код выглядел примерно так: В C ++:

typedef void (*MyCallback_t) (CallbackInfo);

class MyClass
{...
   void setcallback(MyCallback_t cb);
 ...
}

И для использования в python:

import mylib

def myCallback(mylib_CallbackInfo):
...

t = mylib.MyClass()
t.setcallback(myCallback)

Я видел несколько тем, связанных с моей проблемой, но не смог ее решить

Например, здесь: Обработка в реальном времени и обратные вызовы с Python и C ++ есть совет использовать boost :: python и предупреждение о GLI, но нет примеров. И здесь

Как вызвать функцию Python из потока на иностранном языке (C ++) нет полного описания с частью кода Python и с частью «BOOST_PYTHON_MODULE»

Я также нашел ссылку на использование py_boost_function.hpp для пример в Boost python howto , но он не компилировался, и на самом деле я не мог понять, как его использовать.

24
задан Community 23 May 2017 в 11:53
поделиться