注册表新建 -------DWORD(32-位)

网友投稿 1673 2022-09-10

注册表新建 -------DWORD(32-位)

注册表新建 -------DWORD(32-位)

哈哈哈

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

符串值(REG_SZ)

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

二进制值(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位)。

关于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 的长度则是8个字节即64位,如果是在64位的操作系统中,这个长度可能会更长,这需要取决于当前操作系统以及​​开发环境​​等有关方面,具体可以参考相关的帮助说明!

龙腾一族至尊龙骑

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:VSCode, Django, and Anaconda开发环境集成配置[Windows](vscode怎么运行代码)
下一篇:【值得你记住并受用一生的Word XP/2003快捷键】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~