天天看點

Windows資料類型

 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參數(

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

用于表明視窗的句柄

下一篇: 友元類

繼續閱讀