[PyQt] SIP newbie question, adding a destructor to a C struct
    Riccardo Vianello 
    riccardo.vianello at gmail.com
       
    Thu Oct 21 21:36:09 BST 2010
    
    
  
Hi all,
I'm trying to wrap a C structure that requires some
initialization/disposal code. As far as I could understand, I should
provide the wrapper definition with the "C++" prototypes for a
constructor/destructor pair and associate each of them with the
required code in a %MethodCode directive. This seems to work as I
expected for the constructor, but I couldn't find the destructor's
code anywhere in the generated code.. I might be missing something
obvious, but after spending some time on this without success, I would
be grateful if anyone could provide a hint. The specification file I'm
using is similar to the one I copied here below.
Thanks in advance,
Riccardo
%CModule ctor_dtor 0
struct CStruct {
%TypeHeaderCode
    #include <stdio.h>
    struct CStruct {/*...*/};
    void cstruct_initialization( struct CStruct * cs )
    {
        printf("cstruct_initialization\n");
    }
    void cstruct_disposal( struct CStruct * cs )
    {
        printf("cstruct_disposal\n");
    }
%End
    CStruct();
%MethodCode
    sipCpp = sipMalloc(sizeof (struct CStruct));
    cstruct_initialization(sipCpp);
%End
    ~CStruct();
%MethodCode
    cstruct_disposal(sipCpp);
%End
};
    
    
More information about the PyQt
mailing list