windows 資料型別

2022-02-14 20:37:18 字數 3197 閱讀 5145

一,常見資料型別

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:                    字元指標,也就是字串變數(l long 長,歷史原因,長短指標都一樣了)

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的

Windows資料型別

為什麼說是常見資料型別而不是全部呢?因為第一,windows資料型別太多了,比如說windows中有很多物件,每乙個物件就對應乙個控制代碼,另外還有指標等等。第二,這是沒必要的,掌握資料型別命名的一些規律看到乙個新的資料型別就能猜出它所表示的意思,列了太多大家看了反而全都記不住,如果大家一定想知道可...

WINDOWS 資料型別

windows 資料型別 handle 型別的變數用於唯一標識乙個 物件 如視窗,控制項,檔案等,windows 平台存在眾多這樣的物件,物件是程式操作的目標 bool 布林型變數 byte 位元組型別 char 8位元位元組 dword 32位無符號整型資料 dword32 32位無符號整型資料 ...

Windows資料型別

word 16位無符號整形資料 dword 32位元組無符號整型資料 dword32 dword64 64位元組無符號整型資料 int 32位有符號整型資料型別 int ptr 指向int資料型別的指標型別 int32 32位符號整型 int64 64位符號整型 uint 無符號int long 3...