00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 #ifndef __wincompat_h
00024 #define __wincompat_h
00025 
00026 #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
00027 
00028 #ifdef _MSC_VER
00029 #pragma warning (disable: 4996)
00030 #endif
00031 
00032 #define WIN32_LEAN_AND_MEAN
00033 #include <windows.h>
00034 
00035 #define atoll     _atoi64
00036 #define snprintf  _snprintf
00037 
00038 #ifndef __MINGW32__
00039 #define strtoull  _strtoui64
00040 #endif // __MINGW32__
00041 
00042 #endif
00043 
00044 #if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__) \
00045      || defined(__MINGW32__))
00046 
00047 
00048 
00049 
00050 #define INT64_FMT "%I64d"
00051 #define UINT64_FMT "%I64u"
00052 
00053 #define INT64_HEX_FMT "%I64X"
00054 
00055 #else // defined(WIN32) || defined(__MINGW32__)
00056 
00057 #define INT64_FMT "%lld"
00058 #define UINT64_FMT "%llu"
00059 
00060 #define INT64_HEX_FMT "%llX"
00061 
00062 #endif // defined(WIN32) || defined(__MINGW32__)
00063 
00064 #if (defined(WIN32) || defined(_WIN32) || defined(__WIN32__)) \
00065   && ! defined(__MINGW32__)
00066 
00067 #define INT64_CONST(I)  (I ## i64)
00068 #define UINT64_CONST(I) (I ## Ui64)
00069 
00070 #ifndef INT32_MAX
00071 #define INT32_MAX (2147483647)
00072 #endif
00073 
00074 #ifndef INT32_MIN
00075 #define INT32_MIN (-2147483647-1)
00076 #endif
00077 
00078 #else // defined(WIN32) && ! defined(__MINGW32__)
00079 
00080 #define INT64_CONST(I)  (I ## LL)
00081 #define UINT64_CONST(I) (I ## ULL)
00082 
00083 #endif // defined(WIN32) && ! defined(__MINGW32__)
00084 
00085 #endif // __wincompat_h