WORD:16位無符號整形數據windows
DWORD:32字節無符號整型數據(DWORD32)數組
DWORD64:64字節無符號整型數據函數
INT:32位有符號整型數據類型指針
INT_PTR:指向INT數據類型的指針類型code
INT32:32位符號整型htm
INT64:64位符號整型對象
UINT:無符號INTblog
LONG:32位符號整型(LONG32)內存
ULONG:無符號LONG文檔
LONGLONG:64位符號整型(LONG64)
SHORT:無符號短整型(16位)
LPARAM:消息的L參數
WPARAM:消息的W參數(
typedef UINT WPARAM;
typedef LONG LPARAM;
WPARAM是無符號整形,LPARAM是long型。
)
HANDLE:對象的句柄,最基本的句柄類型
HICON:圖標的句柄
HINSTANCE:程序實例的句柄
HKEY:註冊表鍵的句柄
HMODULE:模塊的句柄
HWND:窗口的句柄
LPSTR:字符指針,也就是字符串變量
LPSTR是MFC特有的數據類型,具體要根據編譯環境的上下文來區別。一般狀況下等同於char *,若是在編譯環境中定義了使用UNICODE則等同於wchar *。相似的還有LPCTSTR等同於const char *
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數據類型還不止上面列出的類型,還包括不少種,
主要有各類數據的指針、句柄、無符號類型等,能夠查看SDK文檔來了解Windows數據類型更多的細節。
下面再給出Windows數據類型命名的規律,好讓你們在遇到新的數據類型時,能夠基本推論出數據類型的意義。
基本數據類型包括:BYTE、CHAR、WORD、SHORT、INT等。
指針類型的命令方式通常是在其指向的數據類型前加「LP」或「P」,好比指向DWORD的指針類型爲「LPDWORD」和「PDWORD」
各類句柄類型的命名方式通常都是在對象名前加「H」,好比位圖(BITMAP)對應的句柄類型爲「HBITMAP」。
無符號類型通常是以「U」開頭,好比「INT」是符號類型,「UINT」是無符號類型
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 API函數的參數、返回值或一些重要的常量使用的數據類型都是
Windows數據類型。
好比以常常要要到的MessageBox函數,以下:
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
MessageBox函數的返回值是int型,是標準C數據類型,可是全部的參數都使用了Windows數據類型。好比
HWND
用於代表窗口的句柄