Linux下定义Windows常用数据类型
2013-04-20 19:03:40 来源:开发学院核心提示: 将一个Windows程序移植到Linux上,发现两个操作系统对很多数据类型的命名方式区别很大,Linux下定义Windows常用数据类型,比如Windows下对于无符号数据类型一般用U+x的方式,像UINT、UCHAR、ULONG,还有一些数据类型是Windows有,而Linux没有的,而Linux上就要中规中矩,都
将一个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>
- ››linux下两台服务器文件实时同步方案设计和实现
- ››Windows 8.1教你如何清理电脑c盘
- ››Linux文件描述符中的close on exec标志位
- ››Linux下管道使用的一些限制
- ››Linux 误删/usr/bin 解决方法
- ››linux 添加新用户并赋予sudo执行权限
- ››linux常用软件安装方法
- ››Linux的分区已经被你从Windows中删除,系统启动后...
- ››Windows 8中将开始菜单(metro界面)创建关机及重启...
- ››linux enable命令大全
- ››Linux实现基于Loopback的NVI(NAT Virtual Interfa...
- ››Linux远程访问windows时,出现"连接被对端重...
更多精彩
赞助商链接
