cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: Using new Visual C++ 2008 and Windows SDK

From: Mateusz Loskot <mateusz_at_loskot.net>
Date: Wed, 19 Dec 2007 01:54:56 +0100

Yang Tse wrote:
> 2007/12/18, Mateusz Loskot wrote:
>
>> 1. WSAPoll is "available" on all Windows versions supported by the
>> new Windows SDK, but it's only usable/callable on Windows Vista or
>> later.
>
> No. WSAPoll is only available at compile time if _WIN32_WINNT is
> defined and (_WIN32_WINNT >= 0x0600). And it is only available at run
> time if you are running it on Windows Vista or later.

Yes, this is exactly what I'm trying to say.
Please, notice that I used double quotes around 'available'.

>> 2. The new Windows SDK by default targets to Windows Vista,
>> regardless of what host system is used.
>
> If this is true then they (MS) has to iron out that bug.
> Traditionally when _WIN32_WINNT wasn't defined the default and
> documented behaviour of MSVC was to build for the lowest Windows
> Version that the compiler supported, regardless of what Windows
> version host was used.

Yes, this is true.
Here I quote what's defined in the 'sdkddkver.h' file:

http://marcoplusplus.blogspot.com/2007/05/stlport-for-symbian-os-released.html

I don't think it's a bug, it's just a new "feature" and explains why the
Windows SDK full name is "Microsoft Windows SDK for Windows Vista",
inspite of the fact Windows XP and Windows Server 2003 are supported.

> Windows version build target has always depended on _WIN32_WINNT.
> Define it to the appropriate value for the target you're building.

That's what I did.

>> 3. There seems to be a need for option to specify target version of
>> Windows (Vista and pre-Vista) when using Windows SDK, ie. in
>> makefiles.
>
> I disagree with the need for a Vista and pre-Vista switch, the matter
> is not related to Vista. It is related with the intended Windows
> version target (aka _WIN32_WINNT).

It's related to a little new behavior of Windows SDK configuration than
good old Platform SDK.

In other words, if I want to build software *for* Windows XP SP2 using
Windows SDK and I build it *under* Windows XP SP2, I'd expect the
Windows SDK is configured with WINVER=0X0502, but not 0x600 what makes
my build targetting to Vista, in fact.

> Anyway if you feel that makefiles can be improved, go ahead and
> provide a patch

I feel something is behaving differently than previously (Platform SDK +
Visual C++ 2005). I'm not sure what should be correct improvement,
and that's why I've started this discussion.

Cheers

-- 
Mateusz Loskot
http://mateusz.loskot.net
Received on 2007-12-19