Схематический код:
#python
def callback(data):
print(data)
cpplib.function(callback)
#c++
void function(py_callback) {
for(int i = 0; i <= 1000; ++i) {
if (i % 5 == 0) py_callback(i);
}
}
cpplib - это обертка над питоновским сtypes.
Как видно из питона вызывается функция из С библиотеки, которая при возникновении определенного события вызывает функцию, переданную в ей в качестве аргумента.
Перед тем как задавать вопрос я погуглил и нарыл, что реально вызвать python функцию из С. Правда ничего не написано о моем варианте. Конечно, я могу попытаться накрутить в С коде кучу враперов для пайтона, но С код представляет собой библиотеку, которую хотелось бы использовать не только в пайтоне, а в любом другом языке.
Как быть?