Python Callbacks in C/C++ registrieren
Verfasst: Mittwoch 15. Dezember 2010, 18:46
Hi Leute, ich habe eine dll welche ein embedded python startet. Es wird ein modul erstellt (also ein internes) welches folgende funktion anbietet:
PyObject* registerHandler( PyObject*, PyObject* args )
{
char* handler_name;
PyObject* object;
if( !PyArg_ParseTuple(args, "sO", &handler_name, &object) )
return NULL;
register_handler_function( handler_name, (cast_object_to_funktion_ptr)object );
Py_RETURN_NONE;
}
diese wird dann so aufgerufen (in python):
from ctypes import *
registerHandler( "HandlerName", CFUNCTYPE(None, c_void_p)(test_func1) )
Die Frage ist jetzt: welchen cast muss ich auf object anwenden, damit ich die c-wrapper funktion des objects bekomme?
PyObject* registerHandler( PyObject*, PyObject* args )
{
char* handler_name;
PyObject* object;
if( !PyArg_ParseTuple(args, "sO", &handler_name, &object) )
return NULL;
register_handler_function( handler_name, (cast_object_to_funktion_ptr)object );
Py_RETURN_NONE;
}
diese wird dann so aufgerufen (in python):
from ctypes import *
registerHandler( "HandlerName", CFUNCTYPE(None, c_void_p)(test_func1) )
Die Frage ist jetzt: welchen cast muss ich auf object anwenden, damit ich die c-wrapper funktion des objects bekomme?