1#ifndef stdafx_h_ 2#define stdafx_h_ 3 4// stdafx.h : include file for standard system include files, 5// or project specific include files that are used frequently, but 6// are changed infrequently 7// 8 9// Default to external release. 10#ifndef SGTL_INTERNAL 11 #define SGTL_INTERNAL 0 12#endif 13 14#include <iostream> 15#include <stdexcept> 16 17#if defined(WIN32) 18//#include <tchar.h> 19 20 // define this macro for use in VC++ 21 #if !defined(__LITTLE_ENDIAN__) 22 #define __LITTLE_ENDIAN__ 1 23 #endif // !defined(__LITTLE_ENDIAN__) 24#endif // defined(WIN32) 25 26#if defined(Linux) 27// For Linux systems only, types.h only defines the signed 28// integer types. This is not professional code. 29// Update: They are defined in the header files in the more recent version of redhat enterprise gcc. 30#include <sys/types.h> 31#include <stdint.h> 32//typedef unsigned long uint32_t; 33//typedef unsigned short uint16_t; 34//typedef unsigned char uint8_t; 35 36//#define TCHAR char 37//#define _tmain main 38 39 // give a default endian in case one is not defined on Linux (it should be, though) 40 #if !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) 41 #define __LITTLE_ENDIAN__ 1 42 #endif // !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) 43 44#endif // defined(Linux) 45 46// gcc on Mac OS X 47#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) ) 48 #include <TargetConditionals.h> 49 50 #if defined(TARGET_RT_LITTLE_ENDIAN) && TARGET_RT_LITTLE_ENDIAN 51 #if !defined(__LITTLE_ENDIAN__) 52 #define __LITTLE_ENDIAN__ 53 #endif 54 #elif defined(TARGET_RT_BIG_ENDIAN) && TARGET_RT_BIG_ENDIAN 55 #if !defined(__BIG_ENDIAN__) 56 #define __BIG_ENDIAN__ 57 #endif 58 #endif 59#endif 60 61#if defined(WIN32) //!defined(Linux) || !defined(__GNUC__) 62// redefine missing typedefs from stdint.h or syst/types.h 63 64typedef unsigned long long uint64_t; 65typedef unsigned long uint32_t; 66typedef unsigned short uint16_t; 67typedef unsigned char uint8_t; 68 69typedef long long int64_t; 70typedef long int32_t; 71typedef short int16_t; 72typedef char int8_t; 73#endif // !defined(Linux) 74 75#if !defined(TRUE) 76 #define TRUE 1 77#endif // !defined(TRUE) 78 79#if !defined(FALSE) 80 #define FALSE 0 81#endif // !defined(FALSE) 82 83#endif // stdafx_h_ 84