En Mon, 21 Apr 2008 19:11:31 -0300, grbgooglefan <[EMAIL PROTECTED]> escribió:
On Apr 21, 10:17 pm, "Gabriel Genellina" <[EMAIL PROTECTED]>
wrote:
En Mon, 21 Apr 2008 10:24:15 -0300, grbgooglefan <[EMAIL PROTECTED]> escribió:

> I am trying to pass a C++ object to Python function. This Python
> function then calls another C++ function which then uses this C++
> object to call methods of that object's class.

> I tried something like this, but it did not work, gave core dump.

You can't pass any arbitrary C object to a Python function.
In this case you can use a PyCObject, a Python box around a void* pointer.
Seehttp://docs.python.org/api/cObjects.html

Yup, I looked at http://www.python.org/doc/ext/using-cobjects.html
also. I could not find in this example where is CObject used or
converted back from Python to C.
Is there any tutorial which I can use for this?

If you have a C function that receives a PyCObject, just include the relevant headers (cobject.h) and you can retrieve the original pointer using PyCObject_AsVoidPtr:

void foo(PyObject *pyobj)
{
  TOriginalType *porig;
  porig = (TOriginalType *)PyCObject_AsVoidPtr(pyobj);
  // do something with porig
}

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to