dword(注册表的键值)

DWORD全称Double Word,是指注册表的键值,每个word为2个字节的长度,DWORD双字即为4个字节,每个字节是8位,共32位。

在键值项窗口空白处单击右键,选择“新建”菜单项,可以看到这些键值被细分为:字符串值、二进制值、DWORD值、多字符串值、可扩充字符串值五种类型。

键值介绍

在键值项窗口空白处单击右键,选择“新建”菜单项,可以看到这些键值被细分为:字符串值、二进制值、DWORD值、多字符串值、可扩充字符串值五种类型。

字符串值

该值一般用来作为文件描述和硬件标志,可以是字母、数字,也可以是汉字。它的名称是长度固定的文本字符串,最大长度不能超过255个字符,它的数据不限长度。REG文件中一般表现为:“a”=“****”。

注:通过Registry workshop可以将字符串值的名称更改为大于255个字符的长度,但该值将在RegEdit中不可见。

二进制值

一般情况下,大多数硬件组件信息以二进制数据存储,然后通过十六进制的格式显示在注册表编辑器中。该类型值没有长度限制,可以是任意字节长,REG文件中一般表现为:“a”=“hex:01,00,00,00”。

DWORD值

由4字节长(32位整数)的数字表示的数据。设备驱动程序和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG文件中一般表现为“a”=“dword:00000001”。

1个二进制位称为1个bit(位),8个二进制位称为1个Byte(字节),8bit=1byte。2个字节就是1个Word(1个字,16位),DWORD(Double Word)就是双字的意思,两个字(32位)。

typedef unsigned long DWORD;

关于DWORD使用中重要的一点。DWORD现在表示32bit无符号整数,即使以后Windows升级到64位,DWORD仍然是32bit无符号整数(也许以后的long不是32bit了,只需要重新定义一下DWORD就可以了)。

对于那些直接和位数有关的整数,最好不用int,long,short之类的类型,因为这些类型的位数可能不确定(比如,在16位程序里,int是16位的,在32位程序里,int是32位的,谁知道在以后的64位程序里,int是多少位,long又是多少位)。

用重新定义的类型就没有这方面的问题了,最多到时候修改一下定义就可以了,而不需要在程序里一行一行的查找。

MSDN定义

数据类型

本主题列出了微软基础类库中最常用的数据类型。大多数数据类型与Windows软件开发工具包(SDK)中的数据类型完全相同,而其他数据类型是MFC独有的。

常用的Windows,SDK和MFC数据类型如下:BOOL是一个布尔值。

BSTR是一个32位字符指针。

字节:一个8位的无符号整数。

COLORREF用作颜色值的32位值。

DWORD32位无符号整数或段及其相关偏移量的地址。

LONG是一个32位有符号整数。

LPARAM作为参数传递给窗口过程或回调函数的32位值。

LPCSTR指向常量字符串的32位指针。

指向字符串的32位指针。

LPCTSTR指向常量字符串的32位指针,可用于Unicode和DBCS。

LPTSTR指向字符串的32位指针,可用于Unicode和DBCS。

LPVOID指向未指定类型的32位指针。

LRESULT从窗口过程或回调函数返回的32位值。

在Windows版本3.0和3.1上输入16位无符号整数;Win32上的32位无符号整数。

WNDPROC指向窗口过程的32位指针。

字是一个16位无符号整数。

WPARAM作为参数传递给窗口过程或回调函数的值:在Windows版本3.0和3.1上为16位;Win32上的32位。

微软基金会类库唯一的数据类型包括:

位置用于表示元素在集合中的位置的值;由MFC集合类使用。lpcorrect指向常量(不可修改)RECT结构的32位指针。

然而,在实际情况中,DWORD会根据操作系统的不同,被定义成了不同的长度,比如vs8(xp)中,DWORD被定义成了如下的类型:

typedef unsigned long DWORD;而unsigned long的长度则是8个字节即64位,如果是在64位的操作系统中,这个长度可能会更长,这需要取决于当前操作系统以及开发环境等有关方面,具体可以参考相关的帮助说明!

该文章由作者:【什么都是浮云】发布,本站仅提供存储、如有版权、错误、违法等相关信息请联系,本站会在1个工作日内进行整改,谢谢!

发表回复

登录后才能评论