最近将一个windows程序移植到linux上,发现两个操作系统对很多数据类型的命名方式区别很大,比如windows下对于无符号数据类型一般用U+x的方式,像UINT、UCHAR、ULONG,而linux上就要中规中矩,都是unsigned +x;另外,还有一些数据类型是windows有,而的linux没有的,像DWORD、HANDLE、LPSTR等等。于是我写了一个windows数据类型在Linux下进行转换的头文件,贴在这里。其中一部分参考了《从Windows向Linux的C和C++代码移植》这篇文章。
	
	#define INVALID_HANDLE_VALUE   -1
	#define _MAX_PATH       260 /* max. length of full pathname */
	#define HANDLE            int
	#define MAX_PATH        260
	#define TRUE                true
	#define FALSE               false
	#define __stdcall
	#define __declspec(x) 
	#define __cdecl
	#define max(a,b)           (((a) > (b)) ? (a) : (b))
	#define min(a,b)            (((a) < (b)) ? (a) : (b))
	typedef int                        BOOL;
	typedef unsigned char       BYTE;
	typedef float                     FLOAT;
	typedef FLOAT                  *PFLOAT;
	typedef char                      CHAR;
	typedef unsigned char       UCHAR;
	typedef unsigned char       *PUCHAR;
	typedef short                    SHORT;
	typedef unsigned short      USHORT;
	typedef unsigned short      *PUSHORT;
	typedef long                      LONG;
	typedef unsigned short      WORD;
	typedef unsigned long       DWORD;
	typedef long long              LONGLONG;
	typedef unsigned long long  ULONGLONG;
	typedef ULONGLONG           *PULONGLONG;
	typedef unsigned long       ULONG;
	typedef int                 INT;
	typedef unsigned int        UINT;
	typedef unsigned int        *PUINT;
	typedef void                VOID;
	typedef char               *LPSTR;
	typedef const char         *LPCSTR;
	typedef wchar_t            WCHAR;
	typedef WCHAR              *LPWSTR;
	typedef const WCHAR        *LPCWSTR;
	typedef DWORD              *LPDWORD;
	typedef unsigned long      UINT_PTR;
	typedef UINT_PTR           SIZE_T;
	typedef LONGLONG           USN;
	typedef BYTE               BOOLEAN;
	typedef void                *PVOID;
	typedef struct _FILETIME {
	DWORD dwLowDateTime;
	DWORD dwHighDateTime;
	}    FILETIME;
	typedef union _ULARGE_INTEGER {
	struct {
	DWORD LowPart;
	DWORD HighPart;
	};
	struct {
	DWORD LowPart;
	DWORD HighPart;
	} u;
	ULONGLONG QuadPart;
	} ULARGE_INTEGER,
	*PULARGE_INTEGER;

