萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux下定義Windows常用數據類型

Linux下定義Windows常用數據類型

  將一個Windows程序移植到Linux上,發現兩個操作系統對很多數據類型的命名方式區別很大,比如Windows下對於無符號數據類型一般用U+x的方式,像UINT、UCHAR、ULONG,而Linux上就要中規中矩,都是unsigned +x;另外,還有一些數據類型是Windows有,而Linux沒有的,像DWORD、HANDLE、LPSTR等等。於是我寫了一個Windows數據類型在Linux下進行轉換的頭文件

	
<p>
	#define INVALID_HANDLE_VALUE -1
</p>
<p>
	#define _MAX_PATH 260 /* max. length of full pathname */
</p>
<p>
	#define HANDLE int
</p>
<p>
	#define MAX_PATH 260
</p>
<p>
	#define TRUE true
</p>
<p>
	#define FALSE false
</p>
<p>
	#define __stdcall
</p>
<p>
	#define __declspec(x)
</p>
<p>
	#define __cdecl
</p>
<p>
	#define max(a,b) (((a) > (b)) ? (a) : (b))
</p>
<p>
	#define min(a,b) (((a) < (b)) ? (a) : (b))
</p>
<p>
	typedef int BOOL;
</p>
<p>
	typedef unsigned char BYTE;
</p>
<p>
	typedef float FLOAT;
</p>
<p>
	typedef FLOAT *PFLOAT;
</p>
<p>
	typedef char CHAR;
</p>
<p>
	typedef unsigned char UCHAR;
</p>
<p>
	typedef unsigned char *PUCHAR;
</p>
<p>
	typedef short SHORT;
</p>
<p>
	typedef unsigned short USHORT;
</p>
<p>
	typedef unsigned short *PUSHORT;
</p>
<p>
	typedef long LONG;
</p>
<p>
	typedef unsigned short WORD;
</p>
<p>
	typedef unsigned long DWORD;
</p>
<p>
	typedef long long LONGLONG;
</p>
<p>
	typedef unsigned long long ULONGLONG;
</p>
<p>
	typedef ULONGLONG *PULONGLONG;
</p>
<p>
	typedef unsigned long ULONG;
</p>
<p>
	typedef int INT;
</p>
<p>
	typedef unsigned int UINT;
</p>
<p>
	typedef unsigned int *PUINT;
</p>
<p>
	typedef void VOID;
</p>
<p>
	typedef char *LPSTR;
</p>
<p>
	typedef const char *LPCSTR;
</p>
<p>
	typedef wchar_t WCHAR;
</p>
<p>
	typedef WCHAR *LPWSTR;
</p>
<p>
	typedef const WCHAR *LPCWSTR;
</p>
<p>
	typedef DWORD *LPDWORD;
</p>
<p>
	typedef unsigned long UINT_PTR;
</p>
<p>
	typedef UINT_PTR SIZE_T;
</p>
<p>
	typedef LONGLONG USN;
</p>
<p>
	typedef BYTE BOOLEAN;
</p>
<p>
	typedef void *PVOID;
</p>
<p>
	typedef struct _FILETIME {
</p>
<p>
	DWORD dwLowDateTime;
</p>
<p>
	DWORD dwHighDateTime;
</p>
<p>
	} FILETIME;
</p>
<p>
	typedef union _ULARGE_INTEGER {
</p>
<p>
	struct {
</p>
<p>
	DWORD LowPart;
</p>
<p>
	DWORD HighPart;
</p>
<p>
	};
</p>
<p>
	struct {
</p>
<p>
	DWORD LowPart;
</p>
<p>
	DWORD HighPart;
</p>
<p>
	} u;
</p>
<p>
	ULONGLONG QuadPart;
</p>
<p>
	} ULARGE_INTEGER,
</p>
<p>
	*PULARGE_INTEGER;
</p>
copyright © 萬盛學電腦網 all rights reserved