On Wednesday, 7 January 2015 at 19:48:16 UTC, Jonathan Marler
wrote:
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.
You could bypass user32.lib by using directly user32.dll via
LoadLibrary()/GetProcAddress().
--
Paulo