dword

生活百科 2023-01-25 19:31生活百科www.aizhengw.cn

dword

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

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

基本介绍

  • 中文名dword
  • 外文名Double Word
  • 定义每个word为2个位元组的长度
  • 作为档案描述和硬体标誌

注册表的键值

字元串值(REG_SZ)
该值一般用来作为档案描述和硬体标誌,可以是字母、数字,也可以是汉字。它的名称是长度固定的文本字元串,最大长度不能超过255个字元,它的数据不限长度。REG档案中一般表现为“a”=“”。
注通过Registry workshop可以将字元串值的名称更改为大于255个字元的长度,但该值将在RegEdit中不可见。
二进制值(REG_BINARY)
一般情况下,大多数硬体组件信息以二进制数据存储,然后通过十六进制的格式显示在注册表编辑器中。该类型值没有长度限制,可以是任意位元组长,REG档案中一般表现为“a”=“hex:01,00,00,00”。
DWORD值(REG_DWORD)
由 4 位元组长(32 位整数)的数字表示的数据。设备驱动程式和服务的许多参数都是此类型,以二进制、十六进制或十进制格式显示在注册表编辑器中。REG档案中一般表现为“a”=“dword:00000001”。1个二进制位称为1个bit(位),8个二进制位称为1个Byte(位元组),8 bit = 1 byte。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定义

Data Types
This topic lists the data types most commonly used in the Microsoft Foundation Class Library. Most of the data types are exactly the same as those in the Windows Software Development Kit (SDK), while others are unique to MFC.
Commonly used Windows SDK and MFC data types are as follows: BOOL A Boolean value.
BSTR A 32-bit character pointer.
BYTE An 8-bit integer that is not signed.
COLORREF A 32-bit value used as a color value.
DWORD A 32-bit unsigned integer or the address of a segment and its associated offset.
LONG A 32-bit signed integer.
LPARAM A 32-bit value passed as a parameter to a window procedure or callback function.
LPCSTR A 32-bit pointer to a constant character string.
LPSTR A 32-bit pointer to a character string.
LPCTSTR A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.
LPTSTR A 32-bit pointer to a character string that is portable for Unicode and DBCS.
LPVOID A 32-bit pointer to an unspecified type.
LRESULT A 32-bit value returned from a window procedure or callback function.
UINT A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.
WNDPROC A 32-bit pointer to a window procedure.
WORD A 16-bit unsigned integer.
WPARAM A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32.
Data types unique to the Microsoft Foundation Class Library include the following:
POSITION A value used to denote the position of an element in a collection; used by MFC collection classes. LPCRECT A 32-bit pointer to a constant (nonmodifiable) RECT structure.
,在实际情况中,DWORD会根据作业系统的不同,被定义成了不同的长度,比如vs8(xp)中,DWORD被定义成了如下的类型
typedef unsigned long DWORD; 而unsigned long 的长度则是4个位元组即32位,如果是在64位的作业系统中,这个长度可能会更长,这需要取决于当前作业系统以及开发环境等有关方面,具体可以参考相关的帮助说明!
上一篇:C.A.O雪茄 下一篇:Joshua McDonald

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有