dword - 注冊(cè)表的鍵值
DWORD全稱(chēng)Double?Word,是指注冊(cè)表的鍵值,每個(gè)word為2個(gè)字節(jié)的長(zhǎng)度,DWORD雙字即為4個(gè)字節(jié),每個(gè)字節(jié)是8位,共32位。
在鍵值項(xiàng)窗口空白處單擊右鍵,選擇“新建”菜單項(xiàng),可以看到這些鍵值被細(xì)分為:字符串值、二進(jìn)制值、DWORD值、多字符串值、可擴(kuò)充字符串值五種類(lèi)型。
鍵值介紹
在鍵值項(xiàng)窗口空白處單擊右鍵,選擇“新建”菜單項(xiàng),可以看到這些鍵值被細(xì)分為:字符串值、二進(jìn)制值、DWORD值、多字符串值、可擴(kuò)充字符串值五種類(lèi)型。
字符串值
該值一般用來(lái)作為文件描述和硬件標(biāo)志,可以是字母、數(shù)字,也可以是漢字。它的名稱(chēng)是長(zhǎng)度固定的文本字符串,最大長(zhǎng)度不能超過(guò)255個(gè)字符,它的數(shù)據(jù)不限長(zhǎng)度。REG文件中一般表現(xiàn)為:“a”=“****”。
注:通過(guò)Registry workshop可以將字符串值的名稱(chēng)更改為大于255個(gè)字符的長(zhǎng)度,但該值將在RegEdit中不可見(jiàn)。
二進(jìn)制值
一般情況下,大多數(shù)硬件組件信息以二進(jìn)制數(shù)據(jù)存儲(chǔ),然后通過(guò)十六進(jìn)制的格式顯示在注冊(cè)表編輯器中。該類(lèi)型值沒(méi)有長(zhǎng)度限制,可以是任意字節(jié)長(zhǎng),REG文件中一般表現(xiàn)為:“a”=“hex:01,00,00,00”。
DWORD值
由4字節(jié)長(zhǎng)(32位整數(shù))的數(shù)字表示的數(shù)據(jù)。設(shè)備驅(qū)動(dòng)程序和服務(wù)的許多參數(shù)都是此類(lèi)型,以二進(jìn)制、十六進(jìn)制或十進(jìn)制格式顯示在注冊(cè)表編輯器中。REG文件中一般表現(xiàn)為“a”=“dword:00000001”。
1個(gè)二進(jìn)制位稱(chēng)為1個(gè)bit(位),8個(gè)二進(jìn)制位稱(chēng)為1個(gè)Byte(字節(jié)),8bit=1byte。2個(gè)字節(jié)就是1個(gè)Word(1個(gè)字,16位),DWORD(Double Word)就是雙字的意思,兩個(gè)字(32位)。
typedef unsigned long DWORD;
關(guān)于DWORD使用中重要的一點(diǎn)。DWORD現(xiàn)在表示32bit無(wú)符號(hào)整數(shù),即使以后Windows升級(jí)到64位,DWORD仍然是32bit無(wú)符號(hào)整數(shù)(也許以后的long不是32bit了,只需要重新定義一下DWORD就可以了)。
對(duì)于那些直接和位數(shù)有關(guān)的整數(shù),最好不用int,long,short之類(lèi)的類(lèi)型,因?yàn)檫@些類(lèi)型的位數(shù)可能不確定(比如,在16位程序里,int是16位的,在32位程序里,int是32位的,誰(shuí)知道在以后的64位程序里,int是多少位,long又是多少位)。
用重新定義的類(lèi)型就沒(méi)有這方面的問(wèn)題了,最多到時(shí)候修改一下定義就可以了,而不需要在程序里一行一行的查找。
MSDN定義
數(shù)據(jù)類(lèi)型
本主題列出了微軟基礎(chǔ)類(lèi)庫(kù)中最常用的數(shù)據(jù)類(lèi)型。大多數(shù)數(shù)據(jù)類(lèi)型與Windows軟件開(kāi)發(fā)工具包(SDK)中的數(shù)據(jù)類(lèi)型完全相同,而其他數(shù)據(jù)類(lèi)型是MFC獨(dú)有的。
常用的Windows,SDK和MFC數(shù)據(jù)類(lèi)型如下:BOOL是一個(gè)布爾值。
BSTR是一個(gè)32位字符指針。
字節(jié):一個(gè)8位的無(wú)符號(hào)整數(shù)。
COLORREF用作顏色值的32位值。
DWORD32位無(wú)符號(hào)整數(shù)或段及其相關(guān)偏移量的地址。
LONG是一個(gè)32位有符號(hào)整數(shù)。
LPARAM作為參數(shù)傳遞給窗口過(guò)程或回調(diào)函數(shù)的32位值。
LPCSTR指向常量字符串的32位指針。
指向字符串的32位指針。
LPCTSTR指向常量字符串的32位指針,可用于Unicode和DBCS。
LPTSTR指向字符串的32位指針,可用于Unicode和DBCS。
LPVOID指向未指定類(lèi)型的32位指針。
LRESULT從窗口過(guò)程或回調(diào)函數(shù)返回的32位值。
在Windows版本3.0和3.1上輸入16位無(wú)符號(hào)整數(shù);Win32上的32位無(wú)符號(hào)整數(shù)。
WNDPROC指向窗口過(guò)程的32位指針。
字是一個(gè)16位無(wú)符號(hào)整數(shù)。
WPARAM作為參數(shù)傳遞給窗口過(guò)程或回調(diào)函數(shù)的值:在Windows版本3.0和3.1上為16位;Win32上的32位。
微軟基金會(huì)類(lèi)庫(kù)唯一的數(shù)據(jù)類(lèi)型包括:
位置用于表示元素在集合中的位置的值;由MFC集合類(lèi)使用。lpcorrect指向常量(不可修改)RECT結(jié)構(gòu)的32位指針。
然而,在實(shí)際情況中,DWORD會(huì)根據(jù)操作系統(tǒng)的不同,被定義成了不同的長(zhǎng)度,比如vs8 - xp中,DWORD被定義成了如下的類(lèi)型:
typedef unsigned long DWORD;而unsigned long的長(zhǎng)度則是8個(gè)字節(jié)即64位,如果是在64位的操作系統(tǒng)中,這個(gè)長(zhǎng)度可能會(huì)更長(zhǎng),這需要取決于當(dāng)前操作系統(tǒng)以及開(kāi)發(fā)環(huán)境等有關(guān)方面,具體可以參考相關(guān)的幫助說(shuō)明!
