Recently, I transplanted a Windows program to Linux and found that the two operating systems have different naming methods for many data types, for example, in windows, the unsigned data types are generally U + X, such as uint, uchar, and ulong. in Linux, the unsigned + X is required, some other data types are available in windows, but not in Linux, such as DWORD, handle, and lpstr. So I wrote a Windows data type conversion header file in Linux and pasted it here for your learning and reference!
/** windows2linux.hpp** Created on: 2013-4-17* Author: neo*/#ifndef WINDOWS2LINUX_HPP_#define WINDOWS2LINUX_HPP_#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;#endif /* WINDOWS2LINUX_HPP_ */