Conditional Compilation for Specific Windows

Jonathan Marler via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Jan 7 11:48:15 PST 2015


On Wednesday, 7 January 2015 at 18:50:40 UTC, Jacob Carlborg 
wrote:
> On 2015-01-07 19:27, Jonathan Marler wrote:
>> I'm looking at the Windows multicast API.  It has different 
>> socket
>> options depending on if you are on Windows XP or Windows Vista 
>> (and
>> later).  Is there a way to tell at runtime which version of 
>> windows you
>> are on? Note: I'm specifically talking about runtime because I 
>> want the
>> same binary to run on all windows versions so I have to 
>> support both and
>> determine which one I am running on at runtime.
>
> Use the regular system API's as you would in C. Should be easy 
> to find if you search the web.

I've looked up the windows version helper functions 
(http://msdn.microsoft.com/en-us/library/windows/desktop/dn424972(v=vs.85).aspx). 
  The problem is that these functions are not defined in DMD's 
user32.lib.  I could use the operating system's user32.lib but it 
is in COFF format, so I would have to convert my D object files 
to COFF and then compile using MSVC or GNU GCC for windows (or I 
could try converting the OS user32.lib to OMF).  Or, I could add 
the functions to DMD's user32.lib but as far as I know this is a 
private binary managed by Digital Mars that I can't contribute 
to?  Am I wrong?  Does anyone else have a solution or an idea on 
this?

Note: I've wanted to use other windows function in the past that 
were missing from DMD's user32.lib file.  A solution to solve 
this for multiple functions would be ideal, thanks.


More information about the Digitalmars-d-learn mailing list