Windows 数据类型 (Windows Data Types)

参考:https://learn.microsoft.com/en-us/windows/win32/winprog/windows-data-types

  • 要求
要求
最低受支持的客户端Windows XP [仅限桌面应用]
最低受支持的服务器Windows Server 2003 [仅限桌面应用]
HeaderBaseTsd.h;WinDef.h;WinNT.h

APIENTRY

  • 系统函数的调用约定
  • 头文件:WinDef.h
  • 声明
#define APIENTRY WINAPI

ATOM

typedef WORD ATOM;

BOOL

  • 布尔变量 (应为 TRUEFALSE)
  • 头文件:WinDef.h
  • 声明
typedef int BOOL;

BOOLEAN

  • 布尔变量 (应为 TRUEFALSE)
  • 头文件:WinNT.h
  • 声明
typedef BYTE BOOLEAN;

BYTE

  • 8位字节
  • 头文件:WinDef.h
  • 声明
typedef unsigned char BYTE;

CALLBACK

  • 回调函数的调用
  • 头文件:WinDef.h
  • 声明
#define CALLBACK __stdcall
  • CALLBACKWINAPIAPIENTRY 都用于定义具有__stdcall调用约定的函数。 Windows API 中的大多数函数都是使用 WINAPI 声明的。 你可能希望对实现的回调函数使用 CALLBACK 来帮助将函数标识为回调函数

CCHAR

  • 8 位 Windows (ANSI) 字符
  • 头文件:WinNT.h
  • 声明
typedef char CCHAR;

CHAR

  • 8 位 Windows (ANSI) 字符
  • 头文件:WinNT.h
  • 声明
typedef char CHAR;

COLORREF

typedef DWORD COLORREF;

CONST

  • 常量
  • 头文件:WinDef.h
  • 声明
#define CONST const

DWORD

  • 32 位无符号整数。 范围为 0 到 4294967295十进制
  • 头文件:IntSafe.h
  • 声明
typedef unsigned long DWORD;

DWORDLONG

  • 64 位无符号整数。 范围是 0 到 18446744073709551615 十进制
  • 头文件:IntSafe.h
  • 声明
typedef unsigned __int64 DWORDLONG;

DWORD_PTR

  • 指针精度的无符号长类型。 将指针强制转换为长类型以执行指针算术时使用。 (还通常用于在 64 位 Windows 中扩展为 64 位的常规 32 位参数,)
  • 头文件:BaseTsd.h
  • 声明
typedef ULONG_PTR DWORD_PTR;

DWORD32

  • 32 位无符号整数
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned int DWORD32;

DWORD64

  • 64 位无符号整数
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned int DWORD64;

FLOAT

  • 浮点变量
  • 头文件:WinDef.h
  • 声明
typedef float FLOAT;

HACCEL

typedef HANDLE HACCEL;

HALF_PTR

  • 指针大小的一半。 在包含指针和两个小字段的结构中使用
  • 头文件:BaseTsd.h
  • 声明
#ifdef _WIN64
 typedef int HALF_PTR;
#else
 typedef short HALF_PTR;
#endif

HANDLE

  • 对象的句柄
  • 头文件:WinNT.h
  • 声明
typedef PVOID HANDLE;

HBITMAP

  • 位图的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HBITMAP;

HBRUSH

  • 画笔的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HBRUSH;

HCOLORSPACE

typedef HANDLE HCOLORSPACE;

HCONV

  • 动态数据交换 (DDE)的句柄
  • 头文件:Ddeml.h
  • 声明
typedef HANDLE HCONV;

HCONVLIST

  • 动态数据交换 (DDE)对话列表的句柄
  • 头文件:Ddeml.h
  • 声明
typedef HANDLE HCONVLIST;

HCURSOR

  • 游标的句柄
  • 头文件:WinDef.h
  • 声明
typedef HICON HCURSOR;

HDC

typedef HANDLE HDC;

HDDEDATA

  • 动态数据交换 (DDE)数据的句柄
  • 头文件:Ddeml.h
  • 声明
typedef HANDLE HDDEDATA;

HDESK

  • 桌面的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HDESK;

HDROP

  • 内部放置结构的句柄
  • 头文件:ShellApi.h
  • 声明
typedef HANDLE HDROP;

HDWP

  • 延迟窗口位置结构的句柄
  • 头文件:WinUser.h
  • 声明
typedef HANDLE HDWP;

HENHMETAFILE

typedef HANDLE HENHMETAFILE;

HFILE

  • OpenFile 打开的文件的句柄,而不是 CreateFile
  • 头文件:WinDef.h
  • 声明
typedef int HFILE;

HFONT

  • 字体 的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HFONT;

HGDIOBJ

  • GDI 对象的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HGDIOBJ;

HGLOBAL

  • 全局内存块的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HGLOBAL;

HHOOK

  • 挂钩的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HHOOK;

HICON

  • 图标的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HICON;

HINSTANCE

  • 实例的句柄。 这是内存中模块的基址。
    HMODULEHINSTANCE 目前相同,但在 16 位 Windows 中表示不同的内容
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HINSTANCE;

HKEY

  • 注册表项的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HKEY;

HKL

  • 一个输入区位标识符
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HKL;

HLOCAL

  • 本地内存块的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HLOCAL;

HMENU

  • 菜单的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HMENU;

HMETAFILE

typedef HANDLE HMETAFILE;

HMODULE

  • 模块的句柄。 这是内存中模块的基址。
    HMODULEHINSTANCE 在当前版本的 Windows 中相同,但在 16 位 Windows 中表示不同的内容
  • 头文件:WinDef.h
  • 声明
typedef HINSTANCE HMODULE;

HMONITOR

  • 显示监视器的句柄
  • 头文件:WinDef.h
  • 声明
if(WINVER >= 0x0500) typedef HANDLE HMONITOR;

HPALETTE

  • 调色板的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HPALETTE;

HPEN

  • 的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HPEN;

HRESULT

typedef LONG HRESULT;

HRGN

  • 区域的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HRGN;

HRSRC

  • 资源的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HRSRC;

HSZ

  • DDE(dynamic data exchange) 字符串的句柄
  • 头文件:Ddeml.h
  • 声明
typedef HANDLE HSZ;

HWINSTA

typedef HANDLE WINSTA;

HWND

  • 窗口的句柄
  • 头文件:WinDef.h
  • 声明
typedef HANDLE HWND;

INT

  • 32 位带符号整数。 范围是 -2147483648 到 2147483647十进制
  • 头文件:WinDef.h
  • 声明
typedef int INT;

INT_PTR

  • 指针精度的有符号整数类型。 在将指针强制转换为整数时使用 以执行指针算术
  • 头文件:BaseTsd.h
  • 声明
#if defined(_WIN64) 
 typedef __int64 INT_PTR; 
#else 
 typedef int INT_PTR;
#endif

INT8

  • 8 位有符号整数
  • 头文件:BaseTsd.h
  • 声明
typedef signed char INT8;

INT16

  • 16 位有符号整数
  • 头文件:BaseTsd.h
  • 声明
typedef signed short INT16;

INT32

  • 32 位有符号整数。 范围是 -2147483648 到 2147483647十进制
  • 头文件:BaseTsd.h
  • 声明
typedef signed int INT32;

INT64

  • 64 位有符号整数。 范围是 -9223372036854775808 到 9223372036854775807十进制
  • 头文件:BaseTsd.h
  • 声明
typedef signed __int64 INT64;

LANGID

typedef WORD LANGID;

LCID

typedef DWORD LCID;

LCTYPE

typedef DWORD LCTYPE;

LGRPID

typedef DWORD LGRPID;

LONG

  • 32 位带符号整数。 范围是 -2147483648 到 2147483647十进制
  • 头文件:WinNT.h
  • 声明
typedef long LONG;

LONGLONG

  • 64 位带符号整数。 范围是 -9223372036854775808 到 9223372036854775807十进制
  • 头文件:WinNT.h
  • 声明
#if !defined(_M_IX86)
 typedef __int64 LONGLONG; 
#else
 typedef double LONGLONG;
#endif

LONG_PTR

  • 指针精度的有符号长类型。 将指针强制转换为 long 以执行指针算术时使用
  • 头文件:BaseTsd.h
  • 声明
#if defined(_WIN64)
 typedef __int64 LONG_PTR; 
#else
 typedef long LONG_PTR;
#endif

LONG32

  • 32 位带符号整数。 范围是 -2147483648 到 2147483647十进制
  • 头文件:BaseTsd.h
  • 声明
typedef signed int LONG32;

LONG64

  • 64 位带符号整数。 范围是 -9223372036854775808 到 9223372036854775807十进制
  • 头文件:BaseTsd.h
  • 声明
typedef __int64 LONG64;

LPARAM

  • 消息参数
  • 头文件:WinDef.h
  • 声明
typedef LONG_PTR LPARAM;

LPBOOL

  • 指向 BOOL 的指针
  • 头文件:WinDef.h
  • 声明
typedef BOOL far *LPBOOL;

LPBYTE

  • 指向 BYTE 的指针
  • 头文件:WinDef.h
  • 声明
typedef BYTE far *LPBYTE;

LPCOLORREF

  • 指向 LPCOLORREF 值的指针
  • 头文件:WinDef.h
  • 声明
typedef DWORD *LPCOLORREF;

LPCSTR

  • 指向由 8 位 Windows (ANSI) 字符的常量 null 结尾字符串的指针。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef __nullterminated CONST CHAR *LPCSTR;

LPCTSTR

#ifdef UNICODE
 typedef LPCWSTR LPCTSTR; 
#else
 typedef LPCSTR LPCTSTR;
#endif

LPCVOID

  • 指向任意类型的常量的指针
  • 头文件:WinDef.h
  • 声明
typedef CONST void *LPCVOID;

LPCWSTR

  • 指向 16 位 Unicode 字符的以 null 结尾的常量字符串的指针。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef CONST WCHAR *LPCWSTR;

LPDWORD

  • 指向 DWORD 的指针
  • 头文件:WinDef.h
  • 声明
typedef DWORD *LPDWORD;

LPHANDLE

  • 指向 HANDLE 的指针
  • 头文件:WinDef.h
  • 声明
typedef HANDLE *LPHANDLE;

LPINT

  • 指向 INT 的指针
  • 头文件:WinDef.h
  • 声明
typedef int *LPINT;

LPLONG

  • 指向 LONG 的指针
  • 头文件:WinDef.h
  • 声明
typedef long *LPLONG;

LPSTR

  • 指向以 null 结尾的 8 位 Windows 字符串的指针, (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef CHAR *LPSTR;

LPTSTR

#ifdef UNICODE
 typedef LPWSTR LPTSTR;
#else
 typedef LPSTR LPTSTR;
#endif

LPVOID

  • 指向任意类型的指针
  • 头文件:WinDef.h
  • 声明
typedef void *LPVOID;

LPWORD

  • 指向 WORD (typedef unsigned short WORD;)的指针
  • 头文件:WinDef.h
  • 声明
typedef WORD *LPWORD;

LPWSTR

  • 指向以 null 结尾的 16 位 Unicode 字符字符串的指针。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef WCHAR *LPWSTR;

LRESULT

  • 消息处理的签名结果
  • 头文件:WinDef.h
  • 声明
typedef LONG_PTR LRESULT;

PBOOL

  • 指向 BOOL(typedef int BOOL;) 的指针
  • 头文件:WinDef.h
  • 声明
typedef BOOL *PBOOL;

PBOOLEAN

  • 指向 BOOLEAN(typedef BYTE BOOLEAN;) 的指针
  • 头文件:WinNT.h
  • 声明
typedef BOOLEAN *PBOOLEAN;

PBYTE

  • 指向 BYTE(typedef unsigned char BYTE;) 的指针
  • 头文件:WinDef.h
  • 声明
typedef BYTE *PBYTE;

PCHAR

  • 指向 CHAR(typedef char CHAR;) 的指针
  • 头文件:WinNT.h
  • 声明
typedef CHAR *PCHAR;

PCSTR

  • 指向以 null 结尾的常量字符串的指针,该字符串由 8 位 Windows (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef CONST CHAR *PCSTR;

PCTSTR

#ifdef UNICODE
 typedef LPCWSTR PCTSTR;
#else
 typedef LPCSTR PCTSTR;
#endif

PCWSTR

  • 指向 16 位 Unicode 字符的以 null 结尾的常量字符串的指针。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef CONST WCHAR *PCWSTR;

PDWORD

  • 指向 DWORD(typedef unsigned long DWORD;) 的指针
  • 头文件:WinDef.h
  • 声明
typedef DWORD *PDWORD;

PDWORDLONG

  • 指向 DWORDLONG(typedef unsigned __int64 DWORDLONG;) 的指针
  • 头文件:WinNT.h
  • 声明
typedef DWORDLONG *PDWORDLONG;

PDWORD_PTR

  • 指向 DWORD_PTR(typedef ULONG_PTR DWORD_PTR;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef DWORD_PTR *PDWORD_PTR;

PDWORD32

  • 指向 DWORD32(typedef unsigned int DWORD32;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef DWORD32 *PDWORD32;

PDWORD64

  • 指向 DWORD64(typedef unsigned __int64 DWORD64;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef DWORD64 *PDWORD64;

PFLOAT

  • 指向 FLOAT(typedef float FLOAT;) 的指针
  • 头文件:WinDef.h
  • 声明
typedef FLOAT *PFLOAT;

PHALF_PTR

  • 指向 HALF_PTR(typedef float FLOAT;) 的指针
  • 头文件:BaseTsd.h
  • 声明
#ifdef _WIN64
 typedef HALF_PTR *PHALF_PTR;
#else
 typedef HALF_PTR *PHALF_PTR;
#endif

PHANDLE

  • 指向 HANDLE(typedef PVOID HANDLE;) 的指针
  • 头文件:WinNT.h
  • 声明
typedef HANDLE *PHANDLE;

PHKEY

  • 指向 HKEY(typedef HANDLE HKEY;) 的指针
  • 头文件:WinDef.h
  • 声明
typedef HKEY *PHKEY;

PINT

  • 指向 INT(typedef int INT;) 的指针
  • 头文件:WinDef.h
  • 声明
typedef int *PINT;

PINT_PTR

  • 指向 INT_PTR(typedef int INT;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef INT_PTR *PINT_PTR;

PINT8

  • 指向 INT8(typedef signed char INT8;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef INT8 *PINT8;

PINT16

  • 指向 PINT16(typedef signed short INT16;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef INT16 *PINT16;

PINT32

  • 指向 PINT32(typedef signed int INT32;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef INT32 *PINT32;

PINT64

  • 指向 PINT64(typedef signed __int64 INT64;) 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef INT64 *PINT64;

PLCID

  • 指向 LCID(typedef DWORD LCID;) 的指针
  • 头文件:WinNT.h
  • 声明
typedef PDWORD PLCID;

PLONG

  • 指向 LONG(typedef long LONG;) 的指针
  • 头文件:WinNT.h
  • 声明
typedef LONG *PLONG;

PLONGLONG

  • 指向 LONGLONG的指针
  • 头文件:WinNT.h
  • 声明
typedef LONGLONG *PLONGLONG;

PLONG_PTR

  • 指向 LONG_PTR的指针
  • 头文件:BaseTsd.h
  • 声明
typedef LONG_PTR *PLONG_PTR;

PLONG32

  • 指向 LONG32(typedef signed int LONG32;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef LONG32 *PLONG32;

PLONG64

  • 指向 LONG64(typedef __int64 LONG64;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef LONG64 *PLONG64;

POINTER_32

  • 32 位指针。 在 32 位系统上,这是一个本机指针。 在 64 位系统上,这是截断的 64 位指针
  • 头文件:BaseTsd.h
  • 声明
#if defined(_WIN64)
#define POINTER_32 __ptr32
#else
#define POINTER_32
#endif

POINTER_64

  • 64 位指针。 在 64 位系统上,这是一个本机指针。 在 32 位系统上,这是一个符号扩展的 32 位指针
  • 头文件:BaseTsd.h
  • 声明
#if (_MSC_VER >= 1300)
#define POINTER_64 __ptr64
#else
#define POINTER_64
#endif

POINTER_SIGNED

  • 有符号的指针
  • 头文件:BaseTsd.h
  • 声明
#define POINTER_SIGNED __sptr

POINTER_UNSIGNED

  • 无符号的指针
  • 头文件:BaseTsd.h
  • 声明
#define POINTER_UNSIGNED __uptr

PSHORT

  • 指向 SHORT (typedef short SHORT;)的指针
  • 头文件:WinNT.h
  • 声明
typedef SHORT *PSHORT;

PSIZE_T

  • 指向 SIZE_T (typedef ULONG_PTR SIZE_T;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef SIZE_T *PSIZE_T;

PSSIZE_T

  • 指向 SSIZE_T (typedef LONG_PTR SSIZE_T;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef SSIZE_T *PSSIZE_T;

PSTR

  • 指向以 null 结尾的字符串的指针,该字符串由 8 位 Windows (ANSI) 字符。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef CHAR *PSTR;

PTBYTE

  • 指向 TBYTE 的指针
  • 头文件:WinNT.h
  • 声明
typedef TBYTE *PTBYTE;

PTCHAR

  • 指向 TCHAR 的指针
  • 头文件:WinNT.h
  • 声明
typedef TCHAR *PTCHAR;

PTSTR

  • 如果定义了 UNICODE,则为 PWSTR(typedef WCHAR *PWSTR;),否则为 PSTR(typedef CHAR *PSTR;)。 有关详细信息,请参阅 字符串的 Windows 数据类型
  • 头文件:WinNT.h
  • 声明
#ifdef UNICODE
 typedef LPWSTR PTSTR;
#else typedef LPSTR PTSTR;
#endif

PUCHAR

  • 指向 UCHAR (typedef unsigned char UCHAR;)的指针
  • 头文件:WinDef.h
  • 声明
typedef UCHAR *PUCHAR;

UHALF_PTR

  • 指向 UHALF_PTR 的指针
  • 头文件:BaseTsd.h
  • 声明
#ifdef _WIN64
 typedef unsigned int UHALF_PTR;
#else
 typedef unsigned short UHALF_PTR;
#endif

PUINT

  • 指向 UINT (typedef unsigned int UINT;)的指针
  • 头文件:WinDef.h
  • 声明
typedef UINT *PUINT;

PUINT_PTR

  • 指向 UINT_PTR 的指针
  • 头文件:BaseTsd.h
  • 声明
typedef UINT_PTR *PUINT_PTR;

PUINT8

  • 指向 UINT8 (typedef unsigned char UINT8;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef UINT8 *PUINT8;

PUINT16

  • 指向 UINT16 (typedef unsigned short UINT16;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef UINT16 *PUINT16;

PUINT832

  • 指向 UINT32 (typedef unsigned int UINT32;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef UINT32 *PUINT32;

PUINT64

  • 指向 UINT64 (typedef unsigned __int64 UINT64;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef UINT64 *PUINT64;

PULONG

  • 指向 ULONG (typedef unsigned long ULONG;)的指针
  • 头文件:WinDef.h
  • 声明
typedef ULONG *PULONG;

PULONGLONG

  • 指向 ULONGLONG的指针
  • 头文件:WinDef.h
  • 声明
typedef ULONGLONG *PULONGLONG;

PULONG_PTR

  • 指向 ULONG_PTR的指针
  • 头文件:BaseTsd.h
  • 声明
typedef ULONG_PTR *PULONG_PTR;

PULONG32

  • 指向 ULONG32(typedef unsigned int ULONG32;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef ULONG32 *PULONG32;

PULONG64

  • 指向 ULONG64(typedef unsigned __int64 ULONG64;)的指针
  • 头文件:BaseTsd.h
  • 声明
typedef ULONG64 *PULONG64;

PUSHORT

  • 指向 USHORT(typedef unsigned short USHORT;)的指针
  • 头文件:WinDef.h
  • 声明
typedef USHORT *PUSHORT;

PVOID

  • 指向任意类型的指针
  • 头文件:WinNT.h
  • 声明
typedef void *PVOID;

PWCHAR

  • 指向 WCHAR(typedef wchar_t WCHAR;)的指针
  • 头文件:WinNT.h
  • 声明
typedef WCHAR *PWCHAR;

WORD

  • 指向 WCHAR(typedef unsigned short WORD;)的指针
  • 头文件:WinDef.h
  • 声明
typedef WORD *PWORD;

PWSTR

  • 指向以 null 结尾的 16 位 Unicode 字符字符串的指针。 有关详细信息,请参阅 字体使用的字符集
  • 头文件:WinNT.h
  • 声明
typedef WCHAR *PWSTR;

QWORD

  • 64 位无符号整数
  • 声明
typedef unsigned __int64 QWORD;

SC_HANDLE

  • 服务控制管理器数据库的句柄。 有关详细信息,请参阅 SCM 句柄
  • 头文件:WinSvc.h
  • 声明
typedef HANDLE SC_HANDLE;

SC_LOCK

  • 服务控制管理器数据库的锁。 有关详细信息,请参阅 SCM 句柄
  • 头文件:WinSvc.h
  • 声明
typedef LPVOID SC_LOCK;

SERVICE_STATUS_HANDLE

  • 服务状态值的句柄。 有关详细信息,请参阅 SCM 句柄
  • 头文件:WinSvc.h
  • 声明
typedef HANDLE SERVICE_STATUS_HANDLE;

SHORT

  • 16 位整数。 范围为 -32768 到 32767 十进制
  • 头文件:WinNT.h
  • 声明
typedef short SHORT;

SIZE_T

  • 指针可以指向的最大字节数。用于必须跨越指针的全部范围的计数
  • 头文件:BaseTsd.h
  • 声明
typedef ULONG_PTR SIZE_T;

SSIZE_T

  • SIZE_T的signed版本
  • 头文件:BaseTsd.h
  • 声明
typedef LONG_PTR SSIZE_T;

TBYTE

  • 如果定义了 UNICODE,则为 WCHAR;否则为 CHAR
  • 头文件:WinNT.h
  • 声明
#ifdef UNICODE
 typedef WCHAR TBYTE;
#else
 typedef unsigned char TBYTE;
#endif

TCHAR

  • 如果定义了 UNICODE,则为 WCHAR;否则为 CHAR
  • 头文件:WinNT.h
  • 声明
#ifdef UNICODE
 typedef WCHAR TCHAR;
#else
 typedef char TCHAR;
#endif

UCHAR

  • An unsigned CHAR.
  • 头文件:WinDef.h
  • 声明
typedef unsigned char UCHAR;

UHALF_PTR

  • 无符号 HALF_PTR。 在包含指针和两个小字段的结构中使用
  • 头文件:BaseTsd.h
  • 声明
#ifdef _WIN64
 typedef unsigned int UHALF_PTR;
#else
 typedef unsigned short UHALF_PTR;
#endif

UINT

  • An unsigned INT(typedef int INT;).
  • 头文件:WinDef.h
  • 声明
typedef unsigned int UINT;

UINT_PTR

  • An unsigned INT_PTR.
  • 头文件:BaseTsd.h
  • 声明
#if defined(_WIN64)
 typedef unsigned __int64 UINT_PTR;
#else
 typedef unsigned int UINT_PTR;
#endif

UINT8

  • An unsigned INT8(typedef signed char INT8;).
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned char UINT8;

UINT16

  • An unsigned INT16(typedef signed short INT16;).
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned short UINT16;

UINT32

  • An unsigned INT32(typedef signed int INT32;).
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned int UINT32;

UINT64

  • An unsigned INT64(typedef signed __int64 INT64;).
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned __int64 UINT64;

ULONG

  • An unsigned LONG(typedef long LONG;).
  • 头文件:WinDef.h
  • 声明
typedef unsigned long ULONG;

ULONGLONG

  • 64 位无符号整数。 范围为 0 到十进制18446744073709551615
  • 头文件:WinNT.h
  • 声明
#if !defined(_M_IX86)
 typedef unsigned __int64 ULONGLONG;
#else
 typedef double ULONGLONG;
#endif

ULONG_PTR

  • 无符号 LONG_PTR
  • 头文件:BaseTsd.h
  • 声明
#if defined(_WIN64)
 typedef unsigned __int64 ULONG_PTR;
#else
 typedef unsigned long ULONG_PTR;
#endif

ULONG32

  • 无符号 LONG32
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned int ULONG32;

ULONG64

  • 无符号 LONG64
  • 头文件:BaseTsd.h
  • 声明
typedef unsigned __int64 ULONG64;

UNICODE_STRING

  • 一个 Unicode 字符串
  • 头文件:Winternl.h
  • 声明
typedef struct _UNICODE_STRING {
  USHORT  Length;
  USHORT  MaximumLength;
  PWSTR  Buffer;
} UNICODE_STRING;
typedef UNICODE_STRING *PUNICODE_STRING;
typedef const UNICODE_STRING *PCUNICODE_STRING;

USHORT

  • 无符号 SHORT。 范围为 0 到 65535 十进制
  • 头文件:WinDef.h
  • 声明
typedef unsigned short USHORT;

USN

  • 更新序列号 (An update sequence number,USN)
  • 头文件:WinNT.h
  • 声明
typedef LONGLONG USN;

VOID

  • 任何类型
  • 头文件:WinNT.h
  • 声明
#define VOID void

WCHAR

typedef wchar_t WCHAR;

WINAPI

  • 系统函数的调用约定
  • 头文件:WinDef.h
  • 声明
#define WINAPI __stdcall
  • CALLBACKWINAPIAPIENTRY都是用来定义具有__stdcall调用惯例的函数。Windows API中的大多数函数是用WINAPI声明的。你可能希望对你实现的回调函数使用CALLBACK,以帮助识别该函数是回调函数

WORD

  • 16 位无符号整数。 范围为 0 到 65535 十进制
  • 头文件:WinDef.h
  • 声明
typedef unsigned short WORD;

WPARAM

  • 消息参数
  • 头文件:WinDef.h
  • 声明
typedef UINT_PTR WPARAM;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一份可能的大作业实践方案,可以供您参考: ## 1. 爬虫部分 ### 1.1 需求分析 根据题目要求,需要编写一个爬虫程序,爬取指定网站的数据。在爬取数据的过程中,需要做到: - 发送请求,获取网页内容 - 解析网页内容,提取所需数据 - 存储数据,方便后续的数据分析和可视化操作 ### 1.2 技术选型 根据需求分析,可以发现,需要使用 Python 编写爬虫程序。Python 有很多第三方库可以用来编写爬虫,比如 BeautifulSoup、Scrapy、urllib、requests 等等。这里我们选择使用 urllib 和 re 两个标准库来编写爬虫程序。 ### 1.3 实现步骤 首先,需要确定爬取的目标网站和要爬取的数据。这里我们选择爬取豆瓣电影 Top250 的电影名称、评分和简介等信息。 其次,需要发送请求,获取网页内容。可以使用 urllib 发送请求,并设置请求头模拟浏览器访问。 ```python import urllib.request # 设置请求头,模拟浏览器访问 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3' } # 豆瓣电影 Top250 的 url url = 'https://movie.douban.com/top250' # 发送请求,获取网页内容 try: request = urllib.request.Request(url, headers=headers) response = urllib.request.urlopen(request) content = response.read().decode('utf-8') except Exception as e: print(e) ``` 接着,需要解析网页内容,提取所需数据。可以使用 re 正则表达式来解析网页内容,提取电影名称、评分和简介等信息。 ```python import re # 解析网页内容,获取电影信息 pattern = re.compile(r'<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span class="inq">(.*?)</span>', re.S) movies = re.findall(pattern, content) ``` 然后,需要存储数据,方便后续的数据分析和可视化操作。可以将数据存储到文本文件中,或者使用数据库存储数据。 ```python # 将电影信息保存到文件 with open('movies.txt', 'w', encoding='utf-8') as f: for movie in movies: f.write('电影名称:' + movie[0] + '\n') f.write('评分:' + movie[1] + '\n') f.write('简介:' + movie[2] + '\n\n') ``` ## 2. 数据分析部分 ### 2.1 需求分析 在完成爬虫程序之后,需要对爬取到的数据进行分析。在数据分析的过程中,需要做到: - 统计电影的评分分布情况 - 统计电影的类型分布情况 - 统计电影的上映年份分布情况 ### 2.2 技术选型 根据需求分析,需要使用 Python 对数据进行统计和分析。Python 中有很多第三方库可以用来进行数据分析,比如 pandas、numpy、matplotlib 等等。这里我们选择使用 pandas 和 matplotlib 两个库来进行数据分析和可视化。 ### 2.3 实现步骤 首先,需要读取爬取到的数据。可以使用 pandas 库读取文本文件中的数据。 ```python import pandas as pd # 读取数据 data = pd.read_csv('movies.txt', delimiter=':', header=None, names=['类别', '内容']) ``` 接着,需要将电影评分转换为数字类型,并统计电影的评分分布情况。可以使用 pandas 库的 describe() 方法和 matplotlib 库的 hist() 方法来实现。 ```python import matplotlib.pyplot as plt # 将电影评分转换为数字类型 data['内容'] = pd.to_numeric(data['内容']) # 统计电影的评分分布情况 print(data['内容'].describe()) # 可视化电影的评分分布情况 plt.hist(data['内容'], bins=10, color='steelblue', edgecolor='black') plt.xlabel('评分') plt.ylabel('电影数量') plt.title('电影评分分布情况') plt.show() ``` 然后,需要统计电影的类型分布情况。可以使用 pandas 库的 str.contains() 方法和 value_counts() 方法来实现。 ```python # 统计电影的类型分布情况 types = ['剧情', '喜剧', '动作', '爱情', '科幻', '动画', '悬疑', '惊悚', '恐怖', '纪录片', '短片', '情色', '同性', '音乐', '歌舞', '家庭', '儿童', '传记', '历史', '战争', '犯罪', '西部', '奇幻', '冒险', '灾难', '武侠', '古装', '运动', '黑色电影'] for t in types: print(t + '电影数量:' + str(data[data['类别'].str.contains(t)]['类别'].count())) # 可视化电影的类型分布情况 data[data['类别'].str.contains('|'.join(types))]['类别'].value_counts().plot(kind='bar') plt.xlabel('电影类型') plt.ylabel('电影数量') plt.title('电影类型分布情况') plt.show() ``` 最后,需要统计电影的上映年份分布情况。可以使用 pandas 库的 str.extract() 方法和 value_counts() 方法来实现。 ```python # 统计电影的上映年份分布情况 data['上映年份'] = data['类别'].str.extract('(\d{4})') print(data['上映年份'].value_counts()) # 可视化电影的上映年份分布情况 data['上映年份'].value_counts().sort_index().plot(kind='bar') plt.xlabel('上映年份') plt.ylabel('电影数量') plt.title('电影上映年份分布情况') plt.show() ``` 到此为止,整个数据分析和可视化流程就完成了。将以上代码整合到一个 Python 文件中,并执行该文件,就可以得到统计结果和可视化图表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值