Good method for storing C pointer?

Gordon McMillan gmcm at hypernet.com
Mon Mar 6 09:15:55 EST 2000


Grant Munsey writes:

> I have several kinds of 'cookies' that need to be
> passed back into Python which will then be
> given as parameters to Python covers for low level
> 'C' calls. An example would be Windows HWND
> values.
> 
> Currently I define a new type for each of these cookies
> so that I can do good parameter checking. Problem
> is that some of the cookie types are used by multiple
> modules ... which might or might not be loaded in a
> particular app.
> 
> As I understand it you can't create a type multiple times
> because you'll end up with multiple addresses for the
> low level type structure ... and type compares will
> fail.
> 
> So right now I have a separate module that defines all
> the shared types. I don't like this ... would rather
> the first module that needs a type define it and then
> post the type structure address somewhere that other
> modules can get at.
> 
> Anyone have a clean way to do this?

You could use a CObject to pass an opaque pointer around. 
But why not leave it in a separate module and just import it 
into the other extensions (using PyImport_Import)?

- Gordon




More information about the Python-list mailing list