Boost logo

Boost :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2001-10-02 20:12:28


I don't see what the problem is. Your code below looks fine. What do you
mean by "it returns PyObject*'s out of the function call"? What is "it"?
What function call?

Are you perhaps saying that you want to get a pointer to the base address of
the memory held by the buffer? If there is a function to do that in the
Python 'C' API, then use it, I guess. Otherwise, there's a struct in the
Python source associated with instances of Buffer (let's imagine it's called
PyBuffer). Find that struct, cast the PyObject* to a PyBuffer*, and fondle
its private data until you find what you're looking for.

Does that help?


P.S. I'm happy to answer questions, but it will be easier for me if you can
spend the time to eliminate vagaries.

  David Abrahams, C++ library designer for hire

        C++ Booster (
          email: david.abrahams_at_[hidden]

----- Original Message -----
From: "Mike Ensor" <MikeEnsor_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Tuesday, October 02, 2001 8:45 PM
Subject: [boost] How can I switch a PyObject into a void*

> How can I switch a PyObject* in C into a void* varible? Is that possible?
> if not, can I convert it into a char*? I am trying to get a "Buffer"
> in python and convert it into a void* type. I have no problem telling how
> long it is, and extracting elements out of the "Buffer", but it returns
> PyObject*'s out of the function call. I can print them out, but that does
> nothing for me.
> void ListAddEntry_Binary(e5_List&l, PyObject* pyObjRef)
> {
> int size = PySequence_Size(pyObjRef);
> if(!PyBuffer_Check(pyObjRef))
> {
> std::cout << "PyObject is not a Buffer Object" << std::endl;
> return;
> }
> for(int i=0; i< size; i++)
> {
> std::cout << PySequence_GetItem(pyObjRef, i) << std::endl;
> }
> }
> that is the code I am currently working with.
> Thank you,
> Mike Ensor
> Info: Unsubscribe:
> Your use of Yahoo! Groups is subject to

Boost list run by bdawes at, gregod at, cpdaniel at, john at