On Sat, 23 Jul 2011 23:35:39 -0400, Nick Sabalausky <[email protected]> wrote:

Is there a way to have a section of code be extern(C) on one OS and
extern(Windows) on another OS, without resorting making the code in question
a mixin?

These doesn't appear to work:

------------------------------
version(Windows)
{
    enum callingConvention = "Windows";
}
else
{
    enum callingConvention = "C";
}

extern(mixin(callingConvention ))
{
    /+ ...code here... +/
}
------------------------------
version(Windows)
{
    extern(Windows):
}
else
{
    extern(C):
}

/+ ...code here... +/

extern(D):
------------------------------


does this work?

private void fnImpl(...)
{
   // code here
}

version(Windows)
{
   extern(Windows) fn(...) {fnImpl();}
}
else
{
   extern(C) fn(...) {fnImpl();}
}

-Steve

Reply via email to