Embedded Python and C Callback functions

dieter dieter at handshake.de
Sun Jun 7 02:02:33 EDT 2015


doc.mefisto at gmail.com writes:

> Hi. I'm a newbie in python. But I want embed it in my C program.
>
> There is such method of my class:
> @staticmethod
> def install_instr_callback(callback):
>     # set hook for every change of PC
>     m68k.set_instr_hook_callback(callback)
>
> And in my C code there is such callback function:
> static PyObject *my_instr_callback(PyObject *self);
>
> I want call install_instr_callback from C with specifying of my callback. I do:
> PyObject_CallMethod(myClass, "install_instr_callback", "(O)", my_instr_callback);
> But python writes me: [b]null argument to internal routine[/b].

If this output really comes from "PyObject_CallMethod", then
some passed in argument is likely "null" - maybe "myclass"?

The Python-C interface is complicated. It might be advicible to
use e.g. "cython" to get the boilder plate code and some intricacies
taken care of. I have done this with "dm.xmlsec.binding". You
can find in its source also an example for the callback defined
in Python and called from "C".




More information about the Python-list mailing list