[Cython] [newb] Howto build 'rectangle' demo
Robert Bradshaw
robertwb at math.washington.edu
Wed Feb 27 03:49:53 CET 2008
On Feb 26, 2008, at 5:58 PM, Neal Becker wrote:
> I'm trying to follow:
> http://wiki.cython.org/WrappingCPlusPlus
> What am I doing wrong?
>
> ===== Rectangle.h
> class Rectangle {
> public:
> int x0, y0, x1, y1;
> Rectangle(int x0, int y0, int x1, int y1);
> ~Rectangle();
> int getLength();
> int getHeight();
> int getArea();
> void move(int dx, int dy);
> };
>
> ===== rectangle.pyx
> cdef extern from "Rectangle.h":
> ctypedef struct c_Rectangle "Rectangle":
> int x0, y0, x1, y1
> int (*getLength)()
> int (*getHeight)()
> int (*getArea)()
> void (*move)(int dx, int dy)
> c_Rectangle *new_Rectangle "new Rectangle" (int x0, int y0, int
> x1, int y1)
> void del_Rectagle "delete" (c_Rectangle *rect)
>
> cdef class Rectangle:
> c_Rectangle *thisptr # hold a C++ instance which we're
> wrapping
This line should be "cdef c_Rectangle *thisptr # ..."
cdef is the keyword that says "the following is not real Python"
> def __cinit__(self, int x0, int y0, int x1, int y1):
> self.thisptr = new_Rectangle(x0, y0, x1, y1)
> def __dealloc__(self):
> del_Rectangle(self.thisptr)
> def getLength(self):
> return self.thisptr.getLength()
> def getHeight(self):
> return self.thisptr.getHeight()
> def getArea(self):
> return self.thisptr.getArea()
> def move(self, dx, dy):
> self.thisptr.move(dx, dy)
> =========
>
>
> cython rectangle.pyx
>
> Error converting Pyrex file to C:
> ------------------------------------------------------------
> ...
> void (*move)(int dx, int dy)
> c_Rectangle *new_Rectangle "new Rectangle" (int x0, int y0, int
> x1, int y1)
> void del_Rectagle "delete" (c_Rectangle *rect)
>
> cdef class Rectangle:
> c_Rectangle *thisptr # hold a C++ instance which we're
> wrapping
> ^
> ------------------------------------------------------------
>
> /home/nbecker/cython/rectangle.pyx:12:16: 'c_Rectangle' is not a
> constant, variable or function identifier
> ... more errors...
>
> _______________________________________________
> Cython-dev mailing list
> Cython-dev at codespeak.net
> http://codespeak.net/mailman/listinfo/cython-dev
More information about the Cython-dev
mailing list