📄 windows data type.txt
字号:
Windows Data Types
Windows数据类型
由微软Windows操作系统所支持的各种数据类型是用来定义函数的返回值、函数和消息的参数以及结构体成员(因为Win32程序是用C语言来编写,所以没有“类”这个概念)的。这些数据类型定义了上述元素的尺码(在内存中的,也就是占用内存的字节数)和含义。笔者以前一直不太注意这些东西,结果在程序设计时可谓步履维艰。不同类型的常/变量,在程序用扮演的角色相去甚远,了解这些类型,对剖析程序的工作原理是非常有用的。今天又是周末,我把这些类型列出来,然后把它们的“原形”也找出来——是不是很像“照妖镜”呀。
下面这张表里包括这些类型:字符类型(character),整数类型(integer),逻辑值类型(布尔型,海峡那边的兄弟们喜欢叫“布林型”,Boolean),指针类型(pointer),句柄型(handle)。其中,字符类型、整数类型和逻辑值(布尔)类型是C语言编译器通用的,也就是与标准C语言一样。大多数指针类型都是以P(Pointer)或者LP(Long Pointer)前缀开头。“句柄”是指被装载进内存的一个资源(本质而言就是指一定范围内的唯一编号)。
下面这张表是我结合MSDN里的资料制作的,因为自己也是初学,做的还比较粗糙,请大家多多指正:)
由微软Windows操作系统所支持的各种数据类型是用来定义函数的返回值、函数和消息的参数以及结构体成员(因为Win32程序是用C语言来编写,所以没有“类”这个概念)的。这些数据类型定义了上述元素的尺码(在内存中的,也就是占用内存的字节数)和含义。笔者以前一直不太注意这些东西,结果在程序设计时可谓步履维艰。不同类型的常/变量,在程序用扮演的角色相去甚远,了解这些类型,对剖析程序的工作原理是非常有用的。今天又是周末,我把这些类型列出来,然后把它们的“原形”也找出来——是不是很像“照妖镜”呀。
下面这张表里包括这些类型:字符类型(character),整数类型(integer),逻辑值类型(布尔型,海峡那边的兄弟们喜欢叫“布林型”,Boolean),指针类型(pointer),句柄型(handle)。其中,字符类型、整数类型和逻辑值(布尔)类型是C语言编译器通用的,也就是与标准C语言一样。大多数指针类型都是以P(Pointer)或者LP(Long Pointer)前缀开头。“句柄”是指被装载进内存的一个资源(本质而言就是指一定范围内的唯一编号)。
下面这张表是我结合MSDN里的资料制作的,因为自己也是初学,做的还比较粗糙,请大家多多指正:)
┌─────────┬──────────┬───┬──────────────┬────────────────┐
│Windows数据类型 │本质类型 │字节数│定义过程(来历) │含义 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│ATOM │unsigned short │2 │unsigned short→WORD→ATOM │在Atom表中,一键(16位整数) │
│ │ │ │ │一值(一个String)为一个Atom。 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│BOOL │int │* │int→BOOL │逻辑变量,布尔值 │
│ │ │ │ │(取值为 TRUE 或 FALSE) │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│BOOLEAN │unsigned char │1 │unsigned char→BYTE→BOOLEAN│逻辑变量,布尔值 │
│ │ │ │ │(取值为 TRUE 或 FALSE) │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│BYTE │unsigned char │1 │unsigned char→BYTE │字节型,8位。 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│CALLBACK │__stdcall │调用 │__stdcall→CALLBACK │回调函数的调用约定 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│CHAR │char │1 │char→CHAR │8位Windows字符(ANSI) │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│COLORREF │unsigned long │4 │unsigned long→DWORD │红,绿,蓝(RGB)值 │
│ │ │ │→COLORREF │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│CONST │const │关键字│const→CONST │常量 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│CRITICAL_SECTION │RTL_CRITICAL_SECTION│? │RTL_CRITICAL_SECTION(结构)│Critical-section对象 │
│ │结构体 │ │→CRITICAL_SECTION │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│DWORD │unsigned long │4 │unsigned long→DWORD │32位无符号整数 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│DWORD_PTR │unsigned long │4 │unsigned long→ULONG_PTR │略……(用处挺大,不过太长了) │
│ │ │ │→DWORD_PTR(另有其它路径) │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│DWORD32 │unsigned int │* │unsigned int→DWORD32 │32位无符号整数 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│DWORD64 │unsigned __int64 │8 │unsigned __int64→DWORD64 │64位无符号整数 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│FLOAT │float │4 │float→FLOAT │浮点数变量 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HACCEL │HACCEL__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│快捷键列表的句柄 │
│ │ │ │的指向HACCEL__结构体的指针 │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HANDLE │void *(一个地址) │ │void *→HANDLE │对象的句柄 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HBITMAP │HBITMAP__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│位图的句柄 │
│ │ │ │的指向HBITMAP__结构体的指针 │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HBRUSH │HBRUSH__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│画刷的句柄 │
│ │ │ │... │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HCONV │HCONV__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│动态数据交换(DDE)会话的句柄 │
│ │ │ │... │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HCONVLIST │HCONVLIST__结构体 │ │由DECLARE_HANDLE(name)宏定义│动态数据交换(DDE) │
│ │指针 │ │... │会话列表的句柄 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HCURSOR │HICON__结构体指针 │ │HICON__ *→HICON→HCURSOR │光标的句柄 │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HDC │HDC__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│设备上下文(DC)的句柄 │
│ │ │ │... │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HDDEDATA │HDDEDATA__结构体指针│ │由DECLARE_HANDLE(name)宏定义│动态数据交换数据的句柄 │
│ │ │ │... │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HDESK │HDESK__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│桌面(Desktop)的句柄 │
│ │ │ │... │ │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HDROP │HDROP__结构体指针 │ │由DECLARE_HANDLE(name)宏定义│Handle to an internal drop │
│ │ │ │... │structure. │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HDWP │void *(一个地址) │ │void *→HANDLE→HDWP │Handle to a deferred window │
│ │ │ │ │position structure. │
├─────────┼──────────┼───┼──────────────┼────────────────┤
│HENHMETAFILE │HENHMETAFILE__结构体│ │由DECLARE_HANDLE(name)宏定义│增强图元文件的句柄 │
│ │指针 │ │... │ │
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -