[PythonCE] How do you develop on the PocketPC?
Shane Holloway (IEEE)
shane.holloway at ieee.org
Tue Jan 10 19:07:54 CET 2006
On Jan 10, 2006, at 01:59, Luke Dunstan wrote:
> I am interested to know why you prefer it. I can think of the
> following
> advantages:
>
> - It initialises RAPI the first time you try to use it, and
> remembers this.
> - It includes more file I/O functions.
>
> I'm sure it is good for some purposes, but I can also think of some
> possible
> disadvantages:
>
> - The functions are in a class instead of a module. This means that
> you
> could create multiple instances of the class, which doesn't make
> sense.
Sure it does -- this is the way we use it around here. (I work with
Brian, and write many of the ctypes style wrappers for our
libraries.) We make multiple instances, and it works just fine. I
believe RAPI tracks the number of times you init/uninit if I recall
correctly.
> - The name "pocketRapi" implies Pocket PC only but RAPI really
> applies to
> Windows CE in general.
True, but a name can be easily changed. All the devices we work with
are Pocket PCs, and it started as an internal module for our projects.
> - It requires win32file.
Just constants from win32file. We can easily eliminate that dependency.
> - The file I/O functions do not follow the pattern of Python file
> objects.
True, and I'd love to see that implemented as well. I was in a rush
to get something working, but we can modify this to make it work like
normal. An alternative in the meantime is to use StringIO instances
and pass those to copy file. Not quite as good, but functional. I
was thinking this while I was writing, but I was challenged to get
something functional out so we could finish the client app. ;)
> - It doesn't include the last error codes in exceptions raised.
We could add that. We used the ctypes errcheck protocol when we
wrapped OpenAL, and it worked wonderfully. We also wrapped the
entire header file natively using the gccxml tools, and then created
a OO wrapper on top of it. This allows us to have both a module-
level wrapper, and an OO style wrapper.
> - It doesn't use "argtypes" or "restype". I don't know if this
> makes it
> faster?
It worked without them... Doesn't bother me, and saved me the time
in looking up the prototypes. More of a developer time
optimization. ;) You'd have to ask Thomas about speed implications
of argtypes and restypes though.
> - Redistributions in "binary form" must reproduce the copyright
> notice.
That's pretty much the standard BSD style license -- ctypes MIT
license is very similar, as well as pywin32's license... At least
it's not GPL. ;)
http://opensource.org/licenses/bsd-license.php
Hopefully this gives us all good starting point for RAPI use. A
refactor would be useful -- especially after trying some of Thomas'
new tools like errcheck and gccxml. But for the mean time, I'll have
to wait on it. Too many projects on the plate to revisit it now.
Thanks,
-Shane Holloway & Brian Brown
TechGame Networks
More information about the PythonCE
mailing list