一,常見數據類型
WORD: 16位無符號整形數據
DWORD: 32位無符號整型數據(DWORD32)
DWORD64: 64位無符號整型數據
INT: 32位有符號整型數據類型
INT_PTR: 指向INT數據類型的指針類型
INT32: 32位符號整型
INT64: 64位符號整型
UINT: 無符號INT
LONG: 32位符號整型(LONG32)
ULONG: 無符號LONG
LONGLONG: 64位符號整型(LONG64)
SHORT: 無符號短整型(16位)
LPARAM: 消息的L參數
WPARAM: 消息的W參數
HANDLE: 對象的句柄,最基本的句柄類型
HICON: 圖標的句柄
HINSTANCE: 程序實例的句柄
HKEY: 注冊表鍵的句柄
HMODULE: 模塊的句柄
HWND: 窗口的句柄
LPSTR: 字符指針,也就是字符串變量
LPCSTR: 字符串常量
LPCTSTR: 根據環境配置,如果定義了UNICODE宏,則是LPCWSTR類型,否則則為LPCSTR類型
LPCWSTR: UNICODE字符串常量
LPDWORD: 指向DWORD類型數據的指針
CHAR: 8比特字節
TCHAR: 如果定義了UNICODE,則為WCHAR,否則為CHAR
UCHAR: 無符號CHAR
WCHAR: 16位Unicode字符
BOOL: 布爾型變量
BYTE: 字節類型(8位)
CONST: 常量
FLOAT: 浮點數據類型
SIZE_T: 表示內存大小,以字節為單位,其最大值是CPU最大尋址范圍
VOID: 無類型,相當於標准C語言中的void
WINAPI: Windows API的函數調用方式,常見於SDK頭文件中對API函數的聲明中,相當於_stdcall(更嚴格地說,這不是數據類型,而是一種函數調用約定
二,Windows數據類型命名規律
基本數據類型包括:BYTE、CHAR、WORD、SHORT、INT等。
指針類型的命令方式一般是在其指向的數據類型前加“LP”或“P”,比如指向DWORD的指針類型為“LPDWORD”和“PDWORD”
各種句柄類型的命名方式一般都是在對象名前加“H”,比如位圖(BITMAP)對應的句柄類型為“HBITMAP”。
無符號類型一般是以“U”開頭,比如“INT”是符號類型,“UINT”是無符號類型
根據這些命名規律以及自己的經驗看到一些沒見過的數據類型也就能知道它的代表的意思
三,Windows參數簡寫
1、 b 布爾
2、 by BYTE
3、 c chr 或WCHAR TCHAR
4、 n short
5、 i int
6、 x、y 分別表示x 坐標,y 坐標
7、 cx、cy 分別表示x 方向長度和y 方向長度
8、 b 或f BOOL(int),f 代表“flag”
9、 w WORD(無符號short)
10、l LONG 長整數
11、dw DWORD 無符號長整數
12、fn function 函數
13、s string 字符串
14、sz 以0 字節結尾的字符串
15、h 句柄
16、p 指針
17、lpfn 指向函數的長指針
18、cb 字節數
19、lpsz 指向以0 結尾的字符串的長指針
20、g_ 全局變量
21、c_ 常量
22、m_ 類數據成員
23、s_ 靜態變量
24、CS_ 類風格選項
25、CW_ 創建窗口選項
26、DT_ 繪制文本選項
27、IDI_ 圖標ID 號
28、IDC_ 光標ID 號
29、MB_ 消息框選項
30、SND_ 聲音選項
31、WM_ 窗口消息
32、WS_ 窗口風格
33、rc 矩形
四,Windows數據類型與標准C數據類型的關系
查看Windows數據類型的定義可以看到,所有的windows數據類型都是由C數據類型經過類型重定義得到的。
DWORD實質上就是 unsigned long 數據類型,32位無符號整型。
HANDLE類型實質上是void,HANDLE定義為:
typedof PVOID HANDLE;
HANDLE實際上就是一個PVOID,那PVOID又是什么呢?
typeof void *PVOID;
PVOID就是指向void的指針。
所有的Windows數據類型都是通過這種方式在SDK的頭文件中進行定義的,它們都是來源於標准C的
原文地址:https://blog.csdn.net/tianshuai1111/article/details/8163115