Windows数据类型探幽——千回百转你是谁?(1)
生活随笔
收集整理的這篇文章主要介紹了
Windows数据类型探幽——千回百转你是谁?(1)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Windows Data Types Windows數(shù)據(jù)類型 由微軟Windows操作系統(tǒng)所支持的各種數(shù)據(jù)類型是用來定義函數(shù)的返回值、函數(shù)和消息的參數(shù)以及結(jié)構(gòu)體成員(因為Win32程序是用C語言來編寫,所以沒有“類”這個概念)的。這些數(shù)據(jù)類型定義了上述元素的尺碼(在內(nèi)存中的,也就是占用內(nèi)存的字節(jié)數(shù))和含義。筆者以前一直不太注意這些東西,結(jié)果在程序設計時可謂步履維艱。不同類型的常/變量,在程序用扮演的角色相去甚遠,了解這些類型,對剖析程序的工作原理是非常有用的。今天又是周末,我把這些類型列出來,然后把它們的“原形”也找出來——是不是很像“照妖鏡”呀。 下面這張表里包括這些類型:字符類型(character),整數(shù)類型(integer),邏輯值類型(布爾型,海峽那邊的兄弟們喜歡叫“布林型”,Boolean),指針類型(pointer),句柄型(handle)。其中,字符類型、整數(shù)類型和邏輯值(布爾)類型是C語言編譯器通用的,也就是與標準C語言一樣。大多數(shù)指針類型都是以P(Pointer)或者LP(Long Pointer)前綴開頭。“句柄”是指被裝載進內(nèi)存的一個資源(本質(zhì)而言就是指一定范圍內(nèi)的唯一編號)。 下面這張表是我結(jié)合MSDN里的資料制作的,因為自己也是初學,做的還比較粗糙,請大家多多指正:)
接下表
本文轉(zhuǎn)自 水之真諦 51CTO博客,原文鏈接:http://blog.51cto.com/liutiemeng/18905,如需轉(zhuǎn)載請自行聯(lián)系原作者
| Windows數(shù)據(jù)類型 | 本質(zhì)類型 | 字節(jié)數(shù) | 定義過程(來歷) | 含義 |
| ATOM | unsigned short | 2 | unsigned short→WORD→ATOM | 在Atom表中,一鍵(16位整數(shù))一值(一個String)為一個Atom。 |
| BOOL | int | * | int→BOOL | 邏輯變量,布爾值 (取值為 TRUE 或 FALSE) |
| BOOLEAN | unsigned char | 1 | unsigned char→BYTE→BOOLEAN | 邏輯變量,布爾值 (取值為 TRUE 或 FALSE) |
| BYTE | unsigned char | 1 | unsigned char→BYTE | 字節(jié)型,8位。 |
| CALLBACK | __stdcall | 調(diào)用 | __stdcall→CALLBACK | 回調(diào)函數(shù)的調(diào)用約定 |
| CHAR | char | 1 | char→CHAR | 8位Windows字符(ANSI) |
| COLORREF | unsigned long | 4 | unsigned long→DWORD→COLORREF | 紅,綠,藍(RGB)值 |
| CONST | const | 關鍵字 | const→CONST | 常量 |
| CRITICAL_SECTION | RTL_CRITICAL_SECTION結(jié)構(gòu)體 | ? | RTL_CRITICAL_SECTION(結(jié)構(gòu))→CRITICAL_SECTION | Critical-section對象 |
| DWORD | unsigned long | 4 | unsigned long→DWORD | 32位無符號整數(shù) |
| DWORD_PTR | unsigned long | 4 | unsigned long→ULONG_PTR→DWORD_PTR(另有其它路徑) | 略……(用處挺大,不過太長了) |
| DWORD32 | unsigned int | * | unsigned int→DWORD32 | 32位無符號整數(shù) |
| DWORD64 | unsigned __int64 | 8 | unsigned __int64→DWORD64 | 64位無符號整數(shù) |
| FLOAT | float | 4 | float→FLOAT | 浮點數(shù)變量 |
| HACCEL | HACCEL__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義的指向HACCEL__結(jié)構(gòu)體的指針 | 快捷鍵列表的句柄 | |
| HANDLE | void *(一個地址) | void *→HANDLE | 對象的句柄 | |
| HBITMAP | HBITMAP__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義的指向HBITMAP__結(jié)構(gòu)體的指針 | 位圖的句柄 | |
| HBRUSH | HBRUSH__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 畫刷的句柄 | |
| HCONV | HCONV__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 動態(tài)數(shù)據(jù)交換(DDE)會話的句柄 | |
| HCONVLIST | HCONVLIST__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 動態(tài)數(shù)據(jù)交換(DDE)會話列表的句柄 | |
| HCURSOR | HICON__結(jié)構(gòu)體指針 | HICON__ *→HICON→HCURSOR | 光標的句柄 | |
| HDC | HDC__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 設備上下文(DC)的句柄 | |
| HDDEDATA | HDDEDATA__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 動態(tài)數(shù)據(jù)交換數(shù)據(jù)的句柄 | |
| HDESK | HDESK__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 桌面(Desktop)的句柄 | |
| HDROP | HDROP__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | Handle to an internal drop structure. | |
| HDWP | void *(一個地址) | void *→HANDLE→HDWP | Handle to a deferred window position structure. | |
| HENHMETAFILE | HENHMETAFILE__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 增強圖元文件的句柄 | |
| HFILE | int | * | int→HFILE | 由OpenFile(而不是CreateFile)打開的文件的句柄. |
| HFONT | HFONT__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 字體的句柄 | |
| HGDIOBJ | void near * | void NEAR *→HGDIOBJ | GDI對象的句柄 | |
| HGLOBAL | void *(一個地址) | void *→HANDLE→HGLOBAL | 全局內(nèi)存塊的句柄 | |
| HHOOK | HHOOK__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 句子(hook)的句柄 | |
| HICON | HICON__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 圖標的句柄 | |
| HIMAGELIST | _IMAGELIST結(jié)構(gòu)體指針 | _IMAGELIST *→HIMAGELIST | 圖片列表的句柄 | |
| HIMC | HIMC__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 輸入上下文的句柄 | |
| HINSTANCE | HINSTANCE__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 實例的句柄 | |
| HKEY | HKEY__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義……(另有一條路徑,一樣) | 注冊表鍵的句柄 | |
| HKL | HKL__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 輸入點標識符 | |
| HLOCAL | void *(一個地址) | void *→HANDLE→HLOCAL | 本地內(nèi)存塊的句柄 | |
| HMENU | HMENU__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 菜單的句柄 | |
| HMETAFILE | HMETAFILE__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 圖元文件的句柄 | |
| HMODULE | HINSTANCE__結(jié)構(gòu)體指針 | HINSTANCE__*→HINSTANCE→HMODULE | 模塊的句柄。值由模塊的位置來決定。 | |
| HMONITOR | HMONITOR__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 顯示器的句柄 | |
| HPALETTE | HPALETTE__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 調(diào)色板的句柄 | |
| HPEN | HPEN__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 畫(線)筆的句柄 | |
| HRGN | HRGN__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 區(qū)域的句柄 | |
| HRSRC | HRSRC__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 資源的句柄 | |
| HSZ | HSZ__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 動態(tài)數(shù)據(jù)交換(DDE)字符串的句柄 | |
| HWINSTA | HWINSTA__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 窗口狀態(tài)的句柄 | |
| HWND | HWND__結(jié)構(gòu)體指針 | 由DECLARE_HANDLE(name)宏定義…… | 窗口的句柄 |
接下表
本文轉(zhuǎn)自 水之真諦 51CTO博客,原文鏈接:http://blog.51cto.com/liutiemeng/18905,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Windows数据类型探幽——千回百转你是谁?(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql 百万级数据优化资料
- 下一篇: 分布式缓存系统之Memcached