一炎疆,常見數(shù)據(jù)類型
WORD:??????????????? 16位無符號(hào)整形數(shù)據(jù)
DWORD:???????????? 32位無符號(hào)整型數(shù)據(jù)(DWORD32)
DWORD64:???????? 64位無符號(hào)整型數(shù)據(jù)
INT:?????????????????????? 32位有符號(hào)整型數(shù)據(jù)類型
INT_PTR:???????????? 指向INT數(shù)據(jù)類型的指針類型
INT32:????????????????? 32位符號(hào)整型
INT64:????????????????? 64位符號(hào)整型
UINT:????????????????????無符號(hào)INT
LONG:???????????????? 32位符號(hào)整型(LONG32)
ULONG:????????????? 無符號(hào)LONG
LONGLONG:????? 64位符號(hào)整型(LONG64)
SHORT:??????????????無符號(hào)短整型(16位)
LPARAM:?????????? 消息的L參數(shù)
WPARAM:???????? 消息的W參數(shù)
HANDLE:???????????對(duì)象的句柄养叛,最基本的句柄類型
HICON:?????????????? 圖標(biāo)的句柄
HINSTANCE:??? 程序?qū)嵗木浔?/p>
HKEY:??????????????? 注冊(cè)表鍵的句柄
HMODULE:?????? 模塊的句柄
HWND:??????????????窗口的句柄
LPSTR:????????????? 字符指針,也就是字符串變量
LPCSTR:?????????? 字符串常量
LPCTSTR:???????? 根據(jù)環(huán)境配置拂蝎,如果定義了UNICODE宏,則是LPCWSTR類型惶室,否則則為LPCSTR類型
LPCWSTR:?????? UNICODE字符串常量
LPDWORD:????? 指向DWORD類型數(shù)據(jù)的指針
CHAR:?????????????? 8比特字節(jié)
TCHAR:???????????? 如果定義了UNICODE温自,則為WCHAR,否則為CHAR
UCHAR:????????????無符號(hào)CHAR
WCHAR:???????????16位Unicode字符
BOOL:??????????????? 布爾型變量
BYTE:???????????????? 字節(jié)類型(8位)
CONST:???????????? 常量
FLOAT:????????????? 浮點(diǎn)數(shù)據(jù)類型
SIZE_T:????????????? 表示內(nèi)存大小皇钞,以字節(jié)為單位悼泌,其最大值是CPU最大尋址范圍
VOID:???????????????? 無類型,相當(dāng)于標(biāo)準(zhǔn)C語言中的void
WINAPI:?????????????Windows API的函數(shù)調(diào)用方式夹界,常見于SDK頭文件中對(duì)API函數(shù)的聲明中馆里,相當(dāng)于_stdcall(更嚴(yán)格地說,這不是數(shù)據(jù)類型可柿,而是一種函數(shù)調(diào)用約定
二鸠踪,Windows數(shù)據(jù)類型命名規(guī)律
基本數(shù)據(jù)類型包括:BYTE、CHAR复斥、WORD营密、SHORT、INT等目锭。
指針類型的命令方式一般是在其指向的數(shù)據(jù)類型前加“LP”或“P”评汰,比如指向DWORD的指針類型為“LPDWORD”和“PDWORD”
各種句柄類型的命名方式一般都是在對(duì)象名前加“H”,比如位圖(BITMAP)對(duì)應(yīng)的句柄類型為“HBITMAP”痢虹。
無符號(hào)類型一般是以“U”開頭被去,比如“INT”是符號(hào)類型,“UINT”是無符號(hào)類型
根據(jù)這些命名規(guī)律以及自己的經(jīng)驗(yàn)看到一些沒見過的數(shù)據(jù)類型也就能知道它的代表的意思
三奖唯,Windows參數(shù)簡(jiǎn)寫
1惨缆、??b 布爾
2、 by BYTE
3臭埋、 c chr 或WCHAR TCHAR
4踪央、 n short
5、 i int
6瓢阴、 x畅蹂、y 分別表示x 坐標(biāo),y 坐標(biāo)
7荣恐、 cx液斜、cy 分別表示x 方向長度和y 方向長度
8累贤、 b 或f BOOL(int),f 代表“flag”
9、 w WORD(無符號(hào)short)
10少漆、l LONG 長整數(shù)
11臼膏、dw DWORD 無符號(hào)長整數(shù)
12、fn function 函數(shù)
13示损、s string 字符串
14渗磅、sz 以0 字節(jié)結(jié)尾的字符串
15、h 句柄
16检访、p 指針
17始鱼、lpfn 指向函數(shù)的長指針
18、cb 字節(jié)數(shù)
19脆贵、lpsz 指向以0 結(jié)尾的字符串的長指針
20医清、g_ 全局變量
21、c_ 常量
22卖氨、m_ 類數(shù)據(jù)成員
23会烙、s_ 靜態(tài)變量
24、CS_ 類風(fēng)格選項(xiàng)
25筒捺、CW_ 創(chuàng)建窗口選項(xiàng)
26柏腻、DT_ 繪制文本選項(xiàng)
27、IDI_ 圖標(biāo)ID 號(hào)
28焙矛、IDC_ 光標(biāo)ID 號(hào)
29葫盼、MB_ 消息框選項(xiàng)
30残腌、SND_ 聲音選項(xiàng)
31村斟、WM_ 窗口消息
32、WS_ 窗口風(fēng)格
33抛猫、rc 矩形
四蟆盹,Windows數(shù)據(jù)類型與標(biāo)準(zhǔn)C數(shù)據(jù)類型的關(guān)系
???????查看Windows數(shù)據(jù)類型的定義可以看到,所有的windows數(shù)據(jù)類型都是由C數(shù)據(jù)類型經(jīng)過類型重定義得到的闺金。
??????? DWORD實(shí)質(zhì)上就是 unsigned long 數(shù)據(jù)類型逾滥,32位無符號(hào)整型。
HANDLE類型實(shí)質(zhì)上是void败匹,HANDLE定義為:
typedof??? PVOID??? HANDLE;
HANDLE實(shí)際上就是一個(gè)PVOID寨昙,那PVOID又是什么呢?
typeof???? void????? *PVOID;
PVOID就是指向void的指針掀亩。
所有的Windows數(shù)據(jù)類型都是通過這種方式在SDK的頭文件中進(jìn)行定義的舔哪,它們都是來源于標(biāo)準(zhǔn)C的