1 /* 2 +----------------------------------------------------------------------+ 3 | Zend Engine | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 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@php.net> | 16 | Zeev Suraski <zeev@php.net> | 17 +----------------------------------------------------------------------+ 18 */ 19 20 #ifndef ZEND_CONFIG_W32_H 21 #define ZEND_CONFIG_W32_H 22 23 #include <../main/config.w32.h> 24 25 #define _CRTDBG_MAP_ALLOC 26 27 #include <malloc.h> 28 #include <stdlib.h> 29 #include <crtdbg.h> 30 31 #include <string.h> 32 33 #ifndef ZEND_INCLUDE_FULL_WINDOWS_HEADERS 34 #define WIN32_LEAN_AND_MEAN 35 #endif 36 #include <winsock2.h> 37 #include <windows.h> 38 39 #include <float.h> 40 41 #define HAVE_STDIOSTR_H 1 42 #define HAVE_CLASS_ISTDIOSTREAM 43 #define istdiostream stdiostream 44 45 #if _MSC_VER < 1900 46 #define snprintf _snprintf 47 #endif 48 #define strcasecmp(s1, s2) _stricmp(s1, s2) 49 #define strncasecmp(s1, s2, n) _strnicmp(s1, s2, n) 50 #if defined(__cplusplus) && __cplusplus >= 201103L 51 extern "C++" { 52 #include <cmath> 53 #define zend_isnan std::isnan 54 #define zend_isinf std::isinf 55 #define zend_finite std::isfinite 56 } 57 #else 58 #define zend_isinf(a) ((_fpclass(a) == _FPCLASS_PINF) || (_fpclass(a) == _FPCLASS_NINF)) 59 #define zend_finite(x) _finite(x) 60 #define zend_isnan(x) _isnan(x) 61 #endif 62 63 #ifndef __cplusplus 64 /* This will cause the compilation process to be MUCH longer, but will generate 65 * a much quicker PHP binary 66 */ 67 #ifdef ZEND_WIN32_FORCE_INLINE 68 # undef inline 69 # define inline __forceinline 70 #endif 71 #endif 72 73 #ifdef LIBZEND_EXPORTS 74 # define ZEND_API __declspec(dllexport) 75 #else 76 # define ZEND_API __declspec(dllimport) 77 #endif 78 79 #define ZEND_DLEXPORT __declspec(dllexport) 80 #define ZEND_DLIMPORT __declspec(dllimport) 81 82 #endif /* ZEND_CONFIG_W32_H */ 83