From: SF/projects/mingw n. l. <min...@li...> - 2012-07-07 17:28:44
|
Patches item #3540962, was opened at 2012-07-06 13:28 Message generated for change (Comment added) made by keithmarshall You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=3540962&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: w32api Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Earnie Boyd (earnie) Assigned to: Chris Sutcliffe (ir0nh34d) Summary: sdkddkver.h Initial Comment: Microsoft is now using a sdkddkver.h file to help define which versions of the OS are supported. It is mostly documented at http://msdn.microsoft.com/en-us/library/aa383745(VS.85).aspx with a few items of the patch coming from comments on social.microsoft.com. ---------------------------------------------------------------------- >Comment By: Keith Marshall (keithmarshall) Date: 2012-07-07 10:28 Message: Looks good to me, but there are two aspects which don't seem quite right: as I read MSDN, (and Raymond Chen's blog, at http://blogs.msdn.com/b/oldnewthing/archive/2007/04/11/2079137.aspx), Microsoft's current intent is that we should no longer define WINVER or _WIN32_WINNT, but rather we should define only NTDDI_VERSION, and leave sdkddkver.h to provide appropriately consistent definitions for all of WINVER, _WIN32_WINNT, and even _WIN32_IE; (at least, in theory -- some community comments suggest that it doesn't quite work,in practice). Your implementation omits _WIN32_IE entirely, and, unless I'm missing something, reverses the associativity of the relationship between NTDDI_VERSION and _WIN32_WINNT/WINVER. Additionally, this +#ifndef WINVER +# ifdef _WIN32_WINNT +# define WINVER _WIN32_WINNT +# else +# warning WINVER is defaulting to _WIN32_WINNT_WIN2K +# define WINVER _WIN32_WINNT_WIN2K +# endif +#endif block can never be reached with _WIN32_WINNT remaining undefined, (it is immediately preceded by a block which ensures that it is defined), so the inner #Ifdef ... #else is redundant: the #else clause can NEVER be reached. You may wish to revise this logic. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=302435&aid=3540962&group_id=2435 |