Windows常見數(shù)據(jù)類型

一,常見數(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ù)簡寫


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的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容