1. 程式人生 > >win32資料型別總結

win32資料型別總結

win32資料型別一覽 Windows資料型別 本質型別 位元組數 定義過程(來歷) 含義
ATOM unsigned short 2 unsigned short→WORD→ATOM 在Atom表中,一鍵(16位整數)一值(一個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 位元組型,8位。
CALLBACK __stdcall 呼叫 __stdcall→CALLBACK 回撥函式的呼叫約定
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結構體 ? RTL_CRITICAL_SECTION(結構)→CRITICAL_SECTION Critical-section物件
DWORD unsigned long 4 unsigned long→DWORD 32位無符號整數
DWORD_PTR unsigned long 4 unsigned long→ULONG_PTR→DWORD_PTR(另有其它路徑) 略……(用處挺大,不過太長了)
DWORD32 unsigned int * unsigned int→DWORD32 32位無符號整數
DWORD64 unsigned __int64 8 unsigned __int64→DWORD64 64位無符號整數
FLOAT float 4 float→FLOAT 浮點數變數
HACCEL HACCEL__結構體指標   由DECLARE_HANDLE(name)巨集定義的指向HACCEL__結構體的指標 快捷鍵列表的控制代碼
HANDLE void *(一個地址)   void *→HANDLE 物件的控制代碼
HBITMAP HBITMAP__結構體指標   由DECLARE_HANDLE(name)巨集定義的指向HBITMAP__結構體的指標 點陣圖的控制代碼
HBRUSH HBRUSH__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 畫刷的控制代碼
HCONV HCONV__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 動態資料交換(DDE)會話的控制代碼
HCONVLIST HCONVLIST__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 動態資料交換(DDE)會話列表的控制代碼
HCURSOR HICON__結構體指標   HICON__ *→HICON→HCURSOR 游標的控制代碼
HDC HDC__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 裝置上下文(DC)的控制代碼
HDDEDATA HDDEDATA__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 動態資料交換資料的控制代碼
HDESK HDESK__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 桌面(Desktop)的控制代碼
HDROP HDROP__結構體指標   由DECLARE_HANDLE(name)巨集定義…… Handle to an internal drop structure.
HDWP void *(一個地址)   void *→HANDLE→HDWP Handle to a deferred window position structure.
HENHMETAFILE HENHMETAFILE__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 增強圖元檔案的控制代碼
HFILE int * int→HFILE 由OpenFile(而不是CreateFile)開啟的檔案的控制代碼.
HFONT HFONT__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 字型的控制代碼
HGDIOBJ void near *   void NEAR *→HGDIOBJ GDI物件的控制代碼
HGLOBAL void *(一個地址)   void *→HANDLE→HGLOBAL 全域性記憶體塊的控制代碼
HHOOK HHOOK__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 句子(hook)的控制代碼
HICON HICON__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 圖示的控制代碼
HIMAGELIST _IMAGELIST結構體指標   _IMAGELIST *→HIMAGELIST 圖片列表的控制代碼
HIMC HIMC__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 輸入上下文的控制代碼
HINSTANCE HINSTANCE__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 例項的控制代碼
HKEY HKEY__結構體指標   由DECLARE_HANDLE(name)巨集定義……(另有一條路徑,一樣) 登錄檔鍵的控制代碼
HKL HKL__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 輸入點識別符號
HLOCAL void *(一個地址)   void *→HANDLE→HLOCAL 本地記憶體塊的控制代碼
HMENU HMENU__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 選單的控制代碼
HMETAFILE HMETAFILE__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 圖元檔案的控制代碼
HMODULE HINSTANCE__結構體指標   HINSTANCE__*→HINSTANCE→HMODULE 模組的控制代碼。值由模組的位置來決定。
HMONITOR HMONITOR__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 顯示器的控制代碼
HPALETTE HPALETTE__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 調色盤的控制代碼
HPEN HPEN__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 畫(線)筆的控制代碼
HRGN HRGN__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 區域的控制代碼
HRSRC HRSRC__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 資源的控制代碼
HSZ HSZ__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 動態資料交換(DDE)字串的控制代碼
HWINSTA HWINSTA__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 視窗狀態的控制代碼
HWND HWND__結構體指標   由DECLARE_HANDLE(name)巨集定義…… 視窗的控制代碼
INT int * int→INT 32位有符號整數
INT_PTR int(_W64 int即__w64 int) * _W64 int→INT_PTR,_W64就是__w64,是為了解決32位與64位編譯器的相容性而設定的關鍵字 用於指標運算
INT32 signed int * signed int→INT32 32位有符號整數
INT64 signed __int64 8 signed __int64→INT64 64位有符號整數
LANGID unsigned short 2 unsigned short→WORD→LANGID 語言識別符號
LCID unsigned long 4 unsigned long→DWORD→LCID Locale identifier.
LCTYPE unsigned long 4 unsigned long→DWORD→LCTYPE Locale information type. 
LONG long 4 long→LONG 32位有符號整數
LONG_PTR long 4 _W64 long→LONG_PTR 用於指標運算
LONG32 signed int * signed int→LONG32 32位有符號整數
LONG64 __int64 8 __int64→LONG64 64位有符號整數
LONGLONG __int64 8 __int64→LONGLONG 64位有符號整數
LPARAM long 4 _W64 long→LONG_PTR→LPARAM 訊息的引數
LPBOOL int *   int→BOOL, BOOL far *→LPBOOL BOOL型別的指標
LPBYTE unsigned char *   unsigned char→BYTE,BYTE far *→LPBYTE BYTE型別的指標
LPCOLORREF unsigned long *   unsigned long→WORD,DWORD *→LPCOLORREF 顏色值的指標
LPCRITICAL_SECTION RTL_CRITICAL_SECTION結構體指標   RTL_CRITICAL_SECTION *PRTL_CRITICAL_SECTION→,PRTL_CRITICAL_SECTION→LPCRITICAL_SECTION CRITICAL_SECTION的指標
LPCSTR 靜態char *   char→CHAR,CONST CHAR *→LPCSTR 靜態8位Windows字元(ANSI)無終結字串指標
LPCTSTR 靜態wchar_t *   wchar_t→WCHAR,CONST WCHAR *→LPCWSTR,LPCWSTR→LPCTSTR 如果UNICODE已定義則為LPCWSTR,否則為LPCTSTR
LPCVOID 靜態void *   CONST void far *→LPCVOID 任何型別的靜態指標
LPCWSTR 靜態wchar_t *   wchar_t→WCHAR,CONST WCHAR *→LPCWSTR 靜態16位Windows字元(Unicode)無終結字串指標
LPDWORD unsigned long *   unsigned long→DWORD,DWORD far *→LPDWORD DWORD的指標
LPHANDLE 指向控制代碼的指標   void *→HANDLE,HANDLE FAR *→LPHANDLE HANDLE的指標
LPINT int *   int far *→LPINT INT的指標
LPLONG long *   long far *→LPLONG LONG的指標
LPSTR char *   char→CHAR,CHAR *→LPSTR 8位Windows字元(ANSI)無終結字串指標
LPTSTR wchar_t *   wchar_t WCHAR,WCHAR *→LPWSTR,LPWSTR→LPTSTR An LPWSTR if UNICODE is defined, an LPSTR otherwise.
LPVOID void *   void far *→LPVOID 任何型別的指標
LPWORD unsigned short *   unsigned short→WORD,WORD far *→LPWORD WORD的指標
LPWSTR wchar_t *   wchar_t→WCHAR,WCHAR *→LPWSTR 16位Windows字元(ANSI)無終結字串指標
LRESULT long 4 _W64 long→LONG_PTR→LRESULT 有符號的訊息處理結果
LUID LUID結構     區域性唯一識別符號
PBOOL int *   int→BOOL,BOOL near *→PBOOL BOOL的指標
PBOOLEAN unsigned char *   unsigned char→BYTE→BOOLEAN,BOOLEAN *→PBOOLEAN BOOL的指標
PBYTE unsigned char *   unsigned char→BYTE,BYTE near *→PBYTE BYTE的指標
PCHAR char *   char→CHAR,CHAR *→PCHAR CHAR的指標
PCRITICAL_SECTION RTL_CRITICAL_SECTION結構體指標   RTL_CRITICAL_SECTION *→PRTL_CRITICAL_SECTION,PRTL_CRITICAL_SECTION→PCRITICAL_SECTION CRITICAL_SECTION的指標
PCSTR 靜態char *   char→CHAR,CONST CHAR *→PCSTR 靜態8位Windows字元(ANSI)無終結字串指標
PCTSTR 靜態wchar_t *   wchar_t→WCHAR,CONST WCHAR *→LPCWSTR,LPCWSTR→PCTSTR 如果UNICODE已定義則為PCWSTR,否則為PCSTR
PCWCH 靜態wchar_t *   wchar_t→WCHAR,CONST WCHAR *→PCWCH WCHAR的靜態指標
PCWSTR 靜態wchar_t *   wchar_t→WCHAR,CONST WCHAR *→PCWSTR 靜態16位Windows字元(Unicode)無終結字串指標
PDWORD unsigned long *   unsigned long→DWORD,DWORD near *→PDWORD DWORD的指標
PFLOAT float *   float→FLOAT,FLOAT *→PFLOAT FLOAT的指標
PHANDLE 指向控制代碼的指標   void *→HANDLE,HANDLE *→PHANDLE HANDLE的指標
PHKEY 指向HKEY的指標   HKEY__ *→HKEY *→PHKEY HKEY的指標
PINT int *   int near *→PINT INT的指標
PLCID unsigned long *   unsigned long→DWORD,DWORD near *→PDWORD→PLCID LCID的指標
PLONG long *   long→LONG,LONG *→PLONG LONG的指標
PLUID LUID結構體指標   LUID *→PLUID LUID的指標
POINTER_32 void *   void *→POINTER_32 32位指標(詳解略)
POINTER_64 void *   void *→POINTER_64 64位指標(詳解略)
PSHORT short *   short→SHORT,SHORT *→PSHORT SHORT的指標
PSTR char *   char→CHAR,CHAR *→PSTR 8位Windows字元(ANSI)無終結字串指標
PTBYTE wchar_t *   wchar_t→WCHAR,WCHAR *→PTBYTE TBYTE的指標
PTCHAR wchar_t *   wchar_t→WCHAR,WCHAR *→PTCHAR TCHAR的指標
PTSTR wchar_t *   wchar_t→WCHAR,WCHAR *→LPWSTR→PTSTR PWSTR if UNICODE is defined, a PSTR otherwise.
PTBYTE wchar_t *   wchar_t→WCHAR,WCHAR *→PTBYTE TBYTE的指標
PTCHAR wchar_t *   wchar_t→WCHAR,WCHAR *→PTCHAR TCHAR的指標
PTSTR wchar_t *   wchar_t→WCHAR,WCHAR *→LPWSTR→PTSTR A PWSTR if UNICODE is defined, a PSTR otherwise.
PUCHAR unsigned char *   unsigned char→UCHAR,UCHAR *→PUCHAR UCHAR的指標
PUINT unsigned int *   unsigned int *→PUINT(呵呵,為什麼不用UINT*來定義呢?) UINT的指標
PULONG unsigned long *   unsigned long→ULONG,ULONG *→PULONG ULONG的指標
PUSHORT unsigned short *   unsigned short→USHORT,USHORT *→PUSHORT USHORT的指標
PVOID void *   void *→PVOID 任何型別的指標
PWCHAR wchar_t *   wchar_t→WCHAR,WCHAR *→PWCHAR WCHAR的指標
PWORD unsigned short *   unsigned short→WORD,WORD near *→PWORD WORD的指標
PWSTR wchar_t *   wchar_t→WCHAR,WCHAR *→PWSTR 16位Windows字元(Unicode)無終結字串指標
REGSAM unsigned long   unsigned long→DWORD→ACCESS_MASK→REGSAM 登錄檔值的安全訪問掩碼
SC_HANDLE SC_HANDLE__結構體指標   由DECLARE_HANDLE(name)巨集定義…… Handle to a service control manager database.
SC_LOCK void *   void far *→LPVOID→SC_LOCK Handle to a service control manager database lock. 
SERVICE_STATUS_HANDLE SERVICE_STATUS_HANDLE__結構體指標   由DECLARE_HANDLE(name)巨集定義…… Handle to a service status value. 
SHORT short 2 short→SHORT 短整數型別(16位)
SIZE_T unsigned long 4 unsigned long→ULONG_PTR→SIZE_T 指標可指向的最大位元組數
SSIZE_T long   _W64 long→LONG_PTR→SSIZE_T 有符號SIZE_T.
TBYTE wchar_t 2 wchar_t→WCHAR,WCHAR→TBYTE 如果UNICODE已定義則為WCHAR,否則為CHAR
TCHAR wchar_t 2 wchar_t→WCHAR,WCHAR→TCHAR 如果UNICODE已定義則為WCHAR,否則為CHAR
UCHAR unsigned char 1 unsigned char→UCHAR 無符號CHAR
UINT unsigned int * unsigned int→UINT 無符號INT
UINT_PTR unsigned int * unsigned int→UINT_PTR 無符號INT_PTR.
UINT32 unsigned int 2 unsigned int→UINT32 無符號INT32.
UINT64 unsigned __int64 4 unsigned __int64→UINT64 無符號INT64.
ULONG unsigned long 4 unsigned long→ULONG 無符號LONG.
ULONG_PTR unsigned long 4 unsigned long→ULONG_PTR 無符號LONG_PTR.
ULONG32 unsigned int 2 unsigned int→ULONG32 無符號LONG32
ULONG64 unsigned __int64 4 unsigned __int64→ULONG64 無符號LONG64
ULONGLONG unsigned __int64 4 unsigned __int64→ULONGLONG 64位無符號整數
UNSIGNED 沒查到,大家幫忙吧     無符號屬性
USHORT unsigned short   unsigned short→USHORT 無符號SHORT型別
VOID void   void→VOID 任何型別
WCHAR wchar_t 2 wchar_t→WCHAR 16位Unicode字元
WINAPI __stdcall 呼叫 __stdcall→WINAPI 系統函式(API函式)呼叫約定
WORD unsigned short 2 unsigned short→WORD 16位無符號整數
WPARAM unsigned int * unsigned int→UINT_PTR→WPARAM 訊息的引數


本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/carlward/archive/2009/06/01/4233402.aspx

標準C或C++沒有的資料型別

  資料型別 說明

  BOOL 布林變數,實際上是UINT

  COLORREF 用作顏色索引的32位整數

  DWORD 32位的無符號整數

  HANDLE 32位的無符號整數,用作控制代碼

  HINSTANCE 32位的無符號整數,用作例項控制代碼

  HWND 32位的無符號整數,用作視窗控制代碼

  HDC 一個裝置描述背景的控制代碼

  LONG 32位帶符號整數

  LPARAM 32位整數,用作視窗函式或者其他回撥函式的引數之一

  LPCSTR 指向一個字串常量的32位指標

  LPSTR 定義一個線性的32位字串指標

  LRESULT 32位整數,是視窗函式或者其他回撥函式的返回值型別

  UINT 定義一個新的Win32資料型別,它會把一個引數強制轉換成Windows3.x應用中的16位值 或Win32應用中的32位值

  WCHAR 宣告一個16位的UNICODE字元,用來表示世界上所有已知的書寫語言的符號

  WORD 16位的無符號整數

  WPARAM 32位整數,用作視窗函式或者其他回撥函式的引數之一(在Windows3.x中為16位值)

  同時,為了統一變數的命名,在Windows中,不同型別的變數擁有各自的標準字首,一般情況如表所示。

   不同資料型別的字首

  字首 資料型別

  c 字元(char)

  s 短整數(short)

  cb 用於定義物件(一般為一個結構)尺寸的整數

  n 整數(integer)

  sz 以'\0'結尾的字串

  b 位元組

  f BOOL

  w 字(WORD,無符號短整數)

  l 長整數(LONG)

  h HANDLE(無符號整數)

  m_ 類成員變數

  fn 函式(function)

  dw 雙字(DWORD,無符號長整數)