<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
FONT-SIZE: 10pt;
FONT-FAMILY:Tahoma
}
</style>
</head>
<body class='hmmessage'>So I have NOT thought this through.<BR>
 <BR>
I wonder if "preprocessing" dependent only on "target" is a good idea.<BR>
 <BR>
Something like either the ability to prefix pragmas with a target, or an "iftarget" and "ifnottarget" pragma.<BR>
 <BR>
Something like so:<BR>
 <BR>
<* IF_TARGET NT386 *><BR>
<* END_IF_TARGET*><BR>
 <BR>
 <BR>
<* IF_TARGET NT386 *><BR>
<* END_IF_TARGET*><BR>
<BR>It's a small can of worms.<BR>
Where can they be placed? Only at "global" scope? (ie: toplevel in an interface/module).<BR>
 <BR>
What about IF_OSTYPE?<BR>
What about expressions?<BR>
IF_TARGET NT386 OR NTAMD64<BR>
 <BR>
IF_TARGET STARTS(NT)<BR>
 <BR>
etc.<BR>
 <BR>
I don't really have enough interest here to work through this, just sending out the bait...<BR>
 <BR>
Obviously this was triggered by my happening into the odbc directory and bringing up ignoring WINAPI on non-NT386 or prefixing calling conventions with a target.<BR>
 <BR>
This reminds me of an important point here however -- nobody else is going to make the mistake of ever having multiple calling conventions. Therefore the generality of prefixing WINAPI with NT386: is useless.<BR>
Unless Mac68K support is added.<BR>
 <BR>
And here is some rationale even. The PC and Mac evolved from "small" systems, where assembly programming was common, more people knew more lower level details and playing games with calling conventions was something anyone could do. Most other current systems are rooted in C programming. Working in C, calling conventions are generally in a hidden layer below what anyone thinks about. Therefore, the smaller number of capable people working at that level have the good sense to only have one calling convention. No more systems will evolve from "small", at least not without having observed this history. Therefore, there will no longer be multiple calling conventions.<BR>
 <BR>
That is my theory at least.<BR>
 <BR>
Oh, Windows does also have __thiscall and __clrcall. __thiscall is only x86.<BR>
__clrcall sort of doesn't count. It really must means "managed code", using the only calling convention available.<BR>
 <BR>
 - Jay<BR><br /><hr />Helping your favorite cause is as easy as instant messaging. You IM, we give. <a href='http://im.live.com/Messenger/IM/Home/?source=text_hotmail_join' target='_new'>Learn more.</a></body>
</html>