> Thus users of my binding need a different pragma
> on windows to other platforms.
> How can this be done without changing the code,
> or having two versions of it?
> If only I could rename conventions.
> In C, this is accomplished with cpp using #defines
> in a machine dependent header file.
GNAT 3.10 and later includes a pre-processor for Ada
that is similar in usage to C's but slightly better.
The source is portable and free, in keeping with the
Or you could put only the parts that are not portable in
one package, with a portable spec and two versions of the body.
(Note: all uses of "portable" above this line do NOT use
the definition below.)
> Is there a good reason for windows libraries to not use
> C convention?
> Or is it just an accident of Microsoft history?
_Software_Jargon_, Microsoft Press:
"Portable: code that requires the user to port to the
latest release of our operating system and utility