Edit report at https://bugs.php.net/bug.php?id=54407&edit=1

 ID:                 54407
 Updated by:         paj...@php.net
 Reported by:        pvasilevich at parallels dot com
 Summary:            Incorrectly defined NTDDI_VERSION macro
-Status:             Assigned
+Status:             Closed
 Type:               Bug
 Package:            Compile Failure
 Operating System:   Windows Server 2008
 PHP Version:        5.3.6
 Assigned To:        pajoye
 Block user comment: N
 Private report:     N

 New Comment:

This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.

 For Windows:

http://windows.php.net/snapshots/
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------
[2012-03-04 15:23:16] paj...@php.net

Automatic comment from SVN on behalf of pajoye
Revision: http://svn.php.net/viewvc/?view=revision&revision=323866
Log: - fix bug #54407, Incorrectly defined NTDDI_VERSION macro

------------------------------------------------------------------------
[2011-03-28 11:38:15] pvasilevich at parallels dot com

Description:
------------
win32\build\config.w32.h.in  file contains the following code:

/* Define the minimum supported version */
#undef _WIN32_WINNT
#undef NTDDI_VERSION
#define _WIN32_WINNT 0x500
#define NTDDI_VERSION  _WIN32_WIN2K

Now look at some Windows Platform SDK file, for example ShlObj.h:

#if (NTDDI_VERSION >= NTDDI_WIN2K)

you see that NTDDI_VERSION is compared to NTDDI_WIN2K, but NTDDI_WIN2K is 
defined in the following way:

#define NTDDI_WIN2K  0x05000000

So, macro NTDDI_VERSION defined in php config.w32.h equals to 0x500
, but compared to 0x05000000.

This is incorrect behavior and should be fixed.

Test script:
---------------
Schematic script:

#defined _WIN32_WINNT 0x500

#include "zend.h"
#include "ShlObj.h"

...
TCHAR ret[MAX_PATH + 1];
SHGetFolderPath(NULL, CSIDL_FLAG_CREATE, NULL, SHGFP_TYPE_CURRENT, ret);

Expected result:
----------------
NTDDI_VERSION is defined like:
#define NTDDI_WIN2K  0x05000000

OR

do not unset _WIN32_WINNT and NTDDI_VERSION if they are defined.



------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=54407&edit=1

Reply via email to