Windows数据类型探幽——千回百转你是谁?(1)

原创 2004年03月31日 11:20:00

Windows Data Types

Windows数据类型

 

  由微软Windows操作系统所支持的各种数据类型是用来定义函数的返回值、函数和消息的参数以及结构体成员(因为Win32程序是用C语言来编写,所以没有“类”这个概念)的。这些数据类型定义了上述元素的尺码(在内存中的,也就是占用内存的字节数)和含义。笔者以前一直不太注意这些东西,结果在程序设计时可谓步履维艰。不同类型的常/变量,在程序用扮演的角色相去甚远,了解这些类型,对剖析程序的工作原理是非常有用的。今天又是周末,我把这些类型列出来,然后把它们的“原形”也找出来——是不是很像“照妖镜”呀。

       下面这张表里包括这些类型:字符类型(character),整数类型(integer),逻辑值类型(布尔型,海峡那边的兄弟们喜欢叫“布林型”,Boolean),指针类型(pointer),句柄型(handle)。其中,字符类型、整数类型和逻辑值(布尔)类型是C语言编译器通用的,也就是与标准C语言一样。大多数指针类型都是以PPointer)或者LPLong Pointer)前缀开头。“句柄”是指被装载进内存的一个资源(本质而言就是指一定范围内的唯一编号)。

  下面这张表是我结合MSDN里的资料制作的,因为自己也是初学,做的还比较粗糙,请大家多多指正:)

Windows数据类型本质类型字节数定义过程(来历)含义
ATOMunsigned short2unsigned short→WORD→ATOM在Atom表中,一键(16位整数)一值(一个String)为一个Atom。
BOOLint*int→BOOL逻辑变量,布尔值 (取值为 TRUE 或 FALSE)
BOOLEANunsigned char1unsigned char→BYTE→BOOLEAN逻辑变量,布尔值 (取值为 TRUE 或 FALSE)
BYTEunsigned char1unsigned char→BYTE字节型,8位。
CALLBACK__stdcall调用__stdcall→CALLBACK回调函数的调用约定
CHARchar1char→CHAR8位Windows字符(ANSI)
COLORREFunsigned long4unsigned long→DWORD→COLORREF红,绿,蓝(RGB)值
CONSTconst关键字const→CONST常量
CRITICAL_SECTIONRTL_CRITICAL_SECTION结构体?RTL_CRITICAL_SECTION(结构)→CRITICAL_SECTIONCritical-section对象
DWORDunsigned long4unsigned long→DWORD32位无符号整数
DWORD_PTRunsigned long4unsigned long→ULONG_PTR→DWORD_PTR(另有其它路径)略……(用处挺大,不过太长了)
DWORD32unsigned int*unsigned int→DWORD3232位无符号整数
DWORD64unsigned __int648unsigned __int64→DWORD6464位无符号整数
FLOATfloat4float→FLOAT浮点数变量
HACCELHACCEL__结构体指针 由DECLARE_HANDLE(name)宏定义的指向HACCEL__结构体的指针快捷键列表的句柄
HANDLEvoid *(一个地址) void *→HANDLE对象的句柄
HBITMAPHBITMAP__结构体指针 由DECLARE_HANDLE(name)宏定义的指向HBITMAP__结构体的指针位图的句柄
HBRUSHHBRUSH__结构体指针 由DECLARE_HANDLE(name)宏定义……画刷的句柄
HCONVHCONV__结构体指针 由DECLARE_HANDLE(name)宏定义……动态数据交换(DDE)会话的句柄
HCONVLISTHCONVLIST__结构体指针 由DECLARE_HANDLE(name)宏定义……动态数据交换(DDE)会话列表的句柄
HCURSORHICON__结构体指针 HICON__ *→HICON→HCURSOR光标的句柄
HDCHDC__结构体指针 由DECLARE_HANDLE(name)宏定义……设备上下文(DC)的句柄
HDDEDATAHDDEDATA__结构体指针 由DECLARE_HANDLE(name)宏定义……动态数据交换数据的句柄
HDESKHDESK__结构体指针 由DECLARE_HANDLE(name)宏定义……桌面(Desktop)的句柄
HDROPHDROP__结构体指针 由DECLARE_HANDLE(name)宏定义……Handle to an internal drop structure.
HDWPvoid *(一个地址) void *→HANDLE→HDWPHandle to a deferred window position structure.
HENHMETAFILEHENHMETAFILE__结构体指针 由DECLARE_HANDLE(name)宏定义……增强图元文件的句柄
HFILEint*int→HFILE由OpenFile(而不是CreateFile)打开的文件的句柄.
HFONTHFONT__结构体指针 由DECLARE_HANDLE(name)宏定义……字体的句柄
HGDIOBJvoid near * void NEAR *→HGDIOBJGDI对象的句柄
HGLOBALvoid *(一个地址) void *→HANDLE→HGLOBAL全局内存块的句柄
HHOOKHHOOK__结构体指针 由DECLARE_HANDLE(name)宏定义……句子(hook)的句柄
HICONHICON__结构体指针 由DECLARE_HANDLE(name)宏定义……图标的句柄
HIMAGELIST_IMAGELIST结构体指针 _IMAGELIST *→HIMAGELIST图片列表的句柄
HIMCHIMC__结构体指针 由DECLARE_HANDLE(name)宏定义……输入上下文的句柄
HINSTANCEHINSTANCE__结构体指针 由DECLARE_HANDLE(name)宏定义……实例的句柄
HKEYHKEY__结构体指针 由DECLARE_HANDLE(name)宏定义……(另有一条路径,一样)注册表键的句柄
HKLHKL__结构体指针 由DECLARE_HANDLE(name)宏定义……输入点标识符
HLOCALvoid *(一个地址) void *→HANDLE→HLOCAL本地内存块的句柄
HMENUHMENU__结构体指针 由DECLARE_HANDLE(name)宏定义……菜单的句柄
HMETAFILEHMETAFILE__结构体指针 由DECLARE_HANDLE(name)宏定义……图元文件的句柄
HMODULEHINSTANCE__结构体指针 HINSTANCE__*→HINSTANCE→HMODULE模块的句柄。值由模块的位置来决定。
HMONITORHMONITOR__结构体指针 由DECLARE_HANDLE(name)宏定义……显示器的句柄
HPALETTEHPALETTE__结构体指针 由DECLARE_HANDLE(name)宏定义……调色板的句柄
HPENHPEN__结构体指针 由DECLARE_HANDLE(name)宏定义……画(线)笔的句柄
HRGNHRGN__结构体指针 由DECLARE_HANDLE(name)宏定义……区域的句柄
HRSRCHRSRC__结构体指针 由DECLARE_HANDLE(name)宏定义……资源的句柄
HSZHSZ__结构体指针 由DECLARE_HANDLE(name)宏定义……动态数据交换(DDE)字符串的句柄
HWINSTAHWINSTA__结构体指针 由DECLARE_HANDLE(name)宏定义……窗口状态的句柄
HWNDHWND__结构体指针 由DECLARE_HANDLE(name)宏定义……窗口的句柄

接下表

【Windows核心编程】Windows常见数据类型

一,常见数据类型   WORD:                16位无符号整形数据   DWORD:             32位无符号整型数据(DWORD32)   DWORD64:   ...
  • tianshuai11
  • tianshuai11
  • 2012年11月08日 22:58
  • 5963

Windows常见数据类型

转载地址:http://blog.csdn.net/tianshuai1111/article/details/8163115 一,常见数据类型   WORD:          ...
  • xiaoyafang123
  • xiaoyafang123
  • 2016年09月19日 15:41
  • 517

Windows编程 Win32API中常见的数据类型

Win32API有一套和C\C++基本数据类型不同的数据类型. C\C++语言的数据类型有如下几个缺陷: 数据类型平台相关,在不同平台上,同一个数据类型可能占用不同的空间大小。典型的,在16位系...
  • RitMan
  • RitMan
  • 2015年12月31日 15:20
  • 2443

windows数据类型与对应基本类型对照表

windows编程中的数据类型 对应的基本类型 说明 BOOL int 布尔值,注意,该类型与值为true/false的C++类型bool不同。 BSTR unsigne...
  • ljianhui
  • ljianhui
  • 2012年10月26日 21:47
  • 1882

Windows数据类型

一、基础类型 (Windows中源代码:) typedef unsigned long       DWORD; typedef int                 BOOL;   //TRUE、...
  • liyuqian199695
  • liyuqian199695
  • 2015年11月25日 22:28
  • 184

WINDOWS数据类型

ATOM                   原子(原子表中的一个字符串的参考) BOOL                   布尔变量 BOOLEAN                布尔变量 BYT...
  • sgdgoodboy
  • sgdgoodboy
  • 2007年12月18日 10:23
  • 628

Windows数据类型探幽——千回百转你是谁?(2)

续表INTint*int→INT32位有符号整数INT_PTRint(_W64 int即__w64 int)*_W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的...
  • FantasiaX
  • FantasiaX
  • 2004年03月31日 11:20
  • 5546

Windows数据类型探幽——千回百转你是谁?(4)

2004年03月30日 19:19:00   最后这张表是Visual C++ 7.1编译器支持的数据类型,也就是Windows各种数据类型的"根源"了。数据类型名称字节数别名取值范围int*...
  • softart
  • softart
  • 2007年10月27日 06:48
  • 317

Win32中的数据类型

                                                               标准C或C++没有的数据类型数据类型   说明BOOL  布尔变量,实际上...
  • cmgg
  • cmgg
  • 2005年09月20日 15:59
  • 647

window编程数据类型

一,常见数据类型   WORD:                16位无符号整形数据   DWORD:             32位无符号整型数据(DWORD32)   DWORD64:   ...
  • fornetuse123
  • fornetuse123
  • 2016年04月22日 10:43
  • 525
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows数据类型探幽——千回百转你是谁?(1)
举报原因:
原因补充:

(最多只允许输入30个字)