1 /* 2 +----------------------------------------------------------------------+ 3 | Zend Engine | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1998-2016 Zend Technologies Ltd. (http://www.zend.com) | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 2.00 of the Zend license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.zend.com/license/2_00.txt. | 11 | If you did not receive a copy of the Zend license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@zend.com so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Authors: Andi Gutmans <andi@zend.com> | 16 | Zeev Suraski <zeev@zend.com> | 17 +----------------------------------------------------------------------+ 18 */ 19 20 /* $Id$ */ 21 22 #ifndef ZEND_CONFIG_W32_H 23 #define ZEND_CONFIG_W32_H 24 25 #include <../main/config.w32.h> 26 27 #define _CRTDBG_MAP_ALLOC 28 29 #include <malloc.h> 30 #include <stdlib.h> 31 #include <crtdbg.h> 32 33 #include <string.h> 34 35 #ifndef ZEND_INCLUDE_FULL_WINDOWS_HEADERS 36 #define WIN32_LEAN_AND_MEAN 37 #endif 38 #include <winsock2.h> 39 #include <windows.h> 40 41 #include <float.h> 42 43 typedef unsigned long ulong; 44 typedef unsigned int uint; 45 46 #define HAVE_STDIOSTR_H 1 47 #define HAVE_CLASS_ISTDIOSTREAM 48 #define istdiostream stdiostream 49 50 #define snprintf _snprintf 51 #if _MSC_VER < 1500 52 #define vsnprintf _vsnprintf 53 #endif 54 #define strcasecmp(s1, s2) stricmp(s1, s2) 55 #define strncasecmp(s1, s2, n) strnicmp(s1, s2, n) 56 #define zend_isinf(a) ((_fpclass(a) == _FPCLASS_PINF) || (_fpclass(a) == _FPCLASS_NINF)) 57 #define zend_finite(x) _finite(x) 58 #define zend_isnan(x) _isnan(x) 59 60 #define zend_sprintf sprintf 61 62 /* This will cause the compilation process to be MUCH longer, but will generate 63 * a much quicker PHP binary 64 */ 65 #ifdef ZEND_WIN32_FORCE_INLINE 66 /* _ALLOW_KEYWORD_MACROS is only relevant for C++ */ 67 # if (_MSC_VER >= 1700) && !defined(_ALLOW_KEYWORD_MACROS) 68 # define _ALLOW_KEYWORD_MACROS 69 # endif 70 # undef inline 71 # define inline __forceinline 72 #elif !defined(ZEND_WIN32_KEEP_INLINE) 73 # undef inline 74 # define inline 75 #endif 76 77 #ifdef LIBZEND_EXPORTS 78 # define ZEND_API __declspec(dllexport) 79 #else 80 # define ZEND_API __declspec(dllimport) 81 #endif 82 83 #define ZEND_DLEXPORT __declspec(dllexport) 84 #define ZEND_DLIMPORT __declspec(dllimport) 85 86 /* 0x00200000L is MB_SERVICE_NOTIFICATION, which is only supported under Windows NT 87 * (and requires _WIN32_WINNT to be defined, which prevents the resulting executable 88 * from running under Windows 9x 89 * Windows 9x should silently ignore it, so it's being used here directly 90 */ 91 #ifndef MB_SERVICE_NOTIFICATION 92 #define MB_SERVICE_NOTIFICATION 0x00200000L 93 #endif 94 95 #define ZEND_SERVICE_MB_STYLE (MB_TOPMOST|MB_SERVICE_NOTIFICATION) 96 97 #endif /* ZEND_CONFIG_W32_H */ 98 99 /* 100 * Local variables: 101 * tab-width: 4 102 * c-basic-offset: 4 103 * indent-tabs-mode: t 104 * End: 105 */ 106