dword

dword

DWORD全稱Double Word,是指註冊表的鍵值,每個word為2個位元組的長度,DWORD 雙字即為4個位元組,每個位元組是8位,共32位。

鍵值項視窗空白處單擊右鍵,選擇“新建”選單項,可以看到這些鍵值被細分為:字元串值、二進制值、DWORD值、多字元串值、可擴充字元串值五種類型。

基本介紹

  • 中文名:dword
  • 外文名:Double Word
  • 定義:每個word為2個位元組的長度
  • 作為:檔案描述和硬體標誌
註冊表的鍵值,MSDN定義,

註冊表的鍵值

字元串值(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位的作業系統中,這個長度可能會更長,這需要取決於當前作業系統以及開發環境等有關方面,具體可以參考相關的幫助說明!

相關詞條

熱門詞條

聯絡我們