Calling python function form C++ passing a dictionary
Thomas Heller
theller at python.net
Thu Jan 30 16:04:10 EST 2003
Michael Andersson <a98mican at ida.his.se> writes:
> Hi!
> I'm trying to call a python function form my c++ program but the
> function is never called. The function expect a dictionary as an
> argument so the call from C++ looks like this:
>
>
> PyObject* dict = PyDict_New();
> PyObject *time = PyInt_FromLong(0);
> PyDict_SetItemString(dict, "time", time);
> PyObject_CallObject(function, dict);
>
> It works fine for tuples but not for dictionarys.
> Any ideas?
Here's what the docs say about PyObject_CallObject:
Call a callable Python object callable_object, with arguments given
by the tuple args.
^^^^^^^^^^
You probably want
PyObject_CallFunction(function, "O", dict);
And you need to check the return value, if it's NULL, there has been an error!
Thomas
More information about the Python-list
mailing list