Subject: Re: bug#12878: 24.2; Compiling failed on Windows 7 with VC 11 Express: _WIN32_WINNT version too low

From: Eli Zaretskii <[email-masked]>
Date: Wed, 14 Nov 2012 05:53:02 +0200

> Date: Wed, 14 Nov 2012 09:14:45 +0800
> From: 李丁 <[email-masked]>
> Cc: [email-masked]
> 
> Sure, adding a correct prototype is just like including the correct header
> file if Windows 9X
> really supports this function. But you should be careful checking compiler
> versions, in case that
> redefinition error occur.

A repeated prototype can never trigger redefinition warnings or errors.

> Actually, I encountered several redefinition problems during compilation.
> For example in w32term.c:
> 
>     #ifndef GLYPHSET
>     /* Pre Windows 2000, this was not available, but define it here so
>        that Emacs compiled on such a platform will run on newer versions.
>  */
>     ...
>     #endif
> 
> VC 11.0 does not define GLYPHSET either (or not included), but it does have
> the definitions,
> and above code leads to redefinition error.
> 
> And this in w32term.c too:
> 
>     /* Reportedly, MSVC does not have this in its headers.  */
>     #ifdef _MSC_VER
>     DECLARE_HANDLE(HMONITOR);
>     #endif
> 
> VC 11.0 does have HMONITOR, and another redefinition error.

What is the value of _MSC_VER for this compiler?