Linux下定义Windows常用数据类型

来源:IT专家网 作者:IT专家网
  

最近将一个Windows程序移植到Linux上,发现两个操作系统对很多数据类型的命名方式区别很大,比如Windows下对于无符号数据类型一般用U+x的方式,像UINT、UCHAR、ULONG,而Linux上就要中规中矩,都是unsigned +x;另外,还有一些数据类型是Windows有,而Linux没有的,像DWORD、HANDLE、LPSTR等等。于是我写了一个Windows数据类型在Linux下进行转换的头文件,贴在这里,供大家学习与参考吧!

#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;


时间:2013-04-16 13:21 来源:IT专家网 作者:IT专家网 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量