[fpc-devel] Incompatibilities between win32 windows unit and wince windows unit

Olivier Rinaudo orinaudo at gmail.com
Sun Jan 7 11:27:20 CET 2007

2007/1/7, Aleš Katona <almindor at gmail.com>:
> On Ne, 2007-01-07 at 00:23 -0200, Felipe Monteiro de Carvalho wrote:
> > Hello,
> >
> > I am porting fpgfx to Windows CE. During this work I noticed a lot of
> > incompatibilities between win32 windows unit and wince windows unit.
> > Trivial stuff, like a parameter is var on win32, but is a pointer on
> > wince.
> >
> > Is there any special reason why it´s like that? Should we try to get
> > both units as compatible as possible? Can I send a patch for that?
> >

All patch / comments /remarks are welcome :)

> thanks,
> I'm not an expert on the windows unit but I encountered similar problems
> among platforms and I think we should defenetly go for compat. The best
> thing you can do (so nobody can say anything) is "complement" both ends.
> So eg:
> you got this in 2 windows unit:
> W1. function A(const data): Pointer;
> W2. function A(data: Pointer): Pointer;
> Best is to complement both W1 and W2 so they both have both overloaded
> versions. It's not nice, but this way you ensure 100% compat and
> everyone is happy. Ofcourse since WINCE isn't stable yet it might be

NO, fpc wince current thrunk is very good, and excellent quality
(in the past there was some issues during internal linker implementation
so it was not the case for all svn rel but since a few months it's very

wince api is not complete but i can say you that fpc-arm-wince is waiting
for the 2.2 :)

cleaner to just copycat the windows ones into it.
> Ales

this is what i did since more than one year,
actual wince api was first inherited from last year win32.

i copy/paste them, then removed unexisting wince funcs
and then start adding new ones.

at the beginning i keepts possible common files for both win32/wince
using ifdef. (you can look in 3month old svn inc files)
but after one year i saw that nobody have interest on that.
only recently ifdef and win32 declarations where removed. why ?

1°)calling conventions are differents, some type/record have same name but
are differents
and even M$ have separated sysgen files, possibles futures issues with ce
4.2, 5, 6 versionning
that can introduce also ifdefs
2°)it was discussed last year here and florian+yuri thinked it was better to
i was first against this but finally be convinced

now, every time i can test some new api,  i add them
some are already missing but i've added all api available functions names at
the beginning
of .in files, so any one who need something to be added can drop a line or
send a patch
(here or directly to me) then i'll do my best to check an apply asap.

in one year i only received 1 patch+request from Rozbeeh and it was applied
in less than 24h


> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20070107/bcacb19b/attachment.html>

More information about the fpc-devel mailing list