Windows數據類型

Windows數據類型都是從標準C的數據類型經過類型重定義而來。INT數據類型是有符號整型,DWORD數據類型是無符號整型。

基本介紹

  • 中文名:Windows數據類型
  • 常見類型:16位無符號整型數據
  • LPARAM:訊息的L參數
  • UINT::無符號INT
說明,常見類型,命名規律,類型關係,API,

說明

Windows API使用了很多Windows自己定義的數據類型。要熟練使用Windows API必須要熟悉Windows數據類型。這些數據類型是Windows特有的。在SDK的相關頭檔案中有定義。
Windows數據類型都是從標準C的數據類型經過類型重定義而來。INT數據類型是有符號整型,DWORD數據類型是無符號整型。

常見類型

為什麼說是常見數據類型而不是全部呢?因為第一,Windows數據類型太多了,比如說Windows中有很多對象,每一個對象就對應一個句柄,另外還有指針等等。第二,這是沒必要的,掌握數據類型命名的一些規律看到一個新的數據類型就能猜出它所表示的意思,列了太多大家看了反而全都記不住,如果大家一定想知道可以查看SDK文檔。第三,很多數據類型我也沒見過或者忘記了。
常見數據類型如下:
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:字元指針,也就是字元串變數
LPCTSTR:根據環境配置,如果定義了UNICODE宏,則是LPCWSTR類型,否則則為LPCSTR類型
LPCWSTR:UNICODE字元串常量
LPDWORD:指向DWORD類型數據的指針
CHAR:8比特位元組
TCHAR:如果定義了UNICODE,則為WCHAR,否則為CHAR
UCHAR:無符號CHAR
WCHAR:16位Unicode字元
BYTE:位元組類型(8位)
CONST:常量
FLOAT:浮點數據類型
SIZE_T:表示記憶體大小,以位元組為單位,其最大值是CPU最大定址範圍
VOID:無類型,相當於標準C語言中的void
WINAPI:Windows API的函式調用方式,常見於SDK頭檔案中對API函式的聲明中,相當於_stdcall(更嚴格地說,這不是數據類型,而是一種函式調用約定

命名規律

基本數據類型包括:BYTE、CHAR、WORD、SHORT、INT等。
指針類型的命令方式一般是在其指向的數據類型前加“LP”或“P”,比如指向DWORD的指針類型為“LPDWORD”和“PDWORD”。LP為長指針,P為短指針,在32位系統中已經不再區分,都是一樣的長度。
各種句柄類型的命名方式一般都是在對象名前加“H”,比如點陣圖(BITMAP)對應的句柄類型為“HBITMAP”。
無符號類型一般是以“U”開頭,比如“INT”是符號類型,“UINT”是無符號類型
根據這些命名規律以及自己的經驗看到一些沒見過的數據類型也就能知道它的代表的意思

類型關係

查看Windows數據類型的定義可以看到,所有的windows數據類型都是由C數據類型經過類型重定義得到的。如DWORD實質上就是 unsigned long 數據類型,32位無符號整型。而經常要用到的HANDLE類型實質上是無類型指針void,HANDLE定義為:
typedef PVOID HANDLE;
HANDLE實際上就是一個PVOID,那PVOID又是什麼呢?
typedef void *PVOID;
PVOID就是指向void的指針
所有的Windows數據類型都是通過這種方式在SDK的頭檔案中進行定義的,它們都是來源於標準C的數據類型

API

Windows API 函式的參數、返回值或一些重要的常量使用的數據類型都是Windows數據類型。
比如以經常要要到的MessageBox函式,如下:
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
MessageBox函式的返回值是int型,是標準C數據類型,但是所有的參數都使用了Windows數據類型。比如HWND用於表明視窗的句柄。

相關詞條

熱門詞條

聯絡我們