Conditional Compilation for Specific Windows
Paulo Pinto via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Wed Jan 7 14:22:49 PST 2015
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
More information about the Digitalmars-d-learn
mailing list