Встраивая Python C ++, передайте этот указатель интерпретатору - PullRequest
0 голосов
/ 28 января 2019

Я написал небольшой класс C ++ с его собственной структурой данных и некоторыми методами запросов.

Этот класс также встраивает интерпретатор Python, используя PyGILState_Ensure и PyGILState_Release

PythonКод скомпилирован с Py_CompileString и загружен с помощью PyImport_ExecCodeModule.

Из результирующего pyObject PyImport_ExecCodeModule here я извлекаю 2 обратных вызова в коде python, которые вызываются из класса c ++.

Теперь я хочу вызвать методы класса c ++ из встроенного python, чтобы получить некоторые данные, хранящиеся в классе c ++.

Есть ли какой-нибудь хороший способ сделать это?

Я подумал о передаче указателя нав класс c ++ с чем-то вроде этого

auto pPyFilterAPIObj = PyCapsule_New((void*)this, "_API_C_OBJ_", NULL);

, но я не могу найти способ получить этот объект во встроенном модуле Python.

Спасибо за любую помощь

...