二、Windows基础数据类型
六、Windows Data Types 簡介:
6.1、這些數(shù)據(jù)類型都是C語言數(shù)據(jù)類型的再次的進行包裝。
6.2、因為考慮到如果使用的是C中的基礎(chǔ)數(shù)據(jù)類型可能無法表示,想表示的精準的含義。
6.3、這些數(shù)據(jù)類型只有在微軟的SDK下才能夠進行使用。
6.4、為什么是使用純C的type進行包裝:是因為要支持C語言。
6.5、所有的這些types都在<Windows.h>中。
6.6、32位系統(tǒng)下,內(nèi)存地址值得長度是32位,DWORD_PTR(存儲地址值)
如:int num = 10; DWORD_PTR pNum = # //其中pNum是有值的,該值就是地址值。
但是此時的pNum的類型并不是指針,而是unsigned long類型。
所以此時編譯器會產(chǎn)生一個警告。
此時需要使用的話就要進行強制轉(zhuǎn)換:*(int*)pNum = 100;
6.7、而在64位中,DWORD_PTR變成了64位。
6.8、LP和P:的這種寫法是沒有區(qū)別的。
6.9、A:表示窄字符。
6.10、T:表示TCHAR, 可變的。
七、Windows Data Types:
7.1、bit。
7.2、byte:8個bit。
7.3、__int8:8bit。
7.4、__int16: 16bit。
7.5、__int32: 32bit。
7.6、__int64: 64bit。
7.7、wchar_t:就是 unsigned short 類型。
typedef unsigned short wchar_t;
7.8、BOOL:1表示TRUE,0表示FALSE、實際上就是一個int類型。
typedef int BOOL, *PBOOL, *LPBOOL;
7.9、BYTE:就是一個unsigned char, 8位的大小。
typedef unsigned char BYTE, *PBYTE, *LPBYTE;
7.10、BOOLEAN:1表示TRUE,0表示FALSE、實際上就是一個BYTE類型。
typedef BYTE BOOLEAN, *PBOOLEAN;
7.11、BSTR:實際上就是一個wchar_t* -> unsigned short*類型。
typedef WCHAR* BSTR;
7.12、CHAR:小寫char的typedef。
typedef char CHAR, *PCHAR;
7.13、DOUBLE:小寫double的typedef。
typedef double DOUBLE;
7.14、DWORD:實際就是一個 unsigned long 類型。
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
7.15、DWORD_PTR:__int3264隨著環(huán)境的變化而變化。32為32,64為64。
typedef unsigned __int3264 ULONG_PTR;
typedef ULONG_PTR DWORD_PTR;
7.16、DWORD32:32位。
typedef unsigned int DWORD32;
7.17、DWORD64:64位。
typedef unsigned __int64 DWORD64, *PDWORD64;
7.18、DWORDLONG:
typedef ULONGLONG DWORDLONG, *PDWORDLONG;
7.19、error_status_t:
typedef unsigned long error_status_t;
7.20、FLOAT:小寫 float 的typedef。
typedef float FLOAT;
7.21、HANDLE:對象句柄。
typedef void* HANDLE;
7.22、HCALL:實際就是unsigned long 類型。
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
typedef DWORD HCALL;
7.23、HRESULT:
typedef LONG HRESULT;
7.24、INT:小寫int 的typedef。
typedef int INT, *LPINT;
7.25、INT8:
typedef signed char INT8;
7.26、INT16:
typedef signed short INT16;
7.27、INT32:
typedef signed int INT32;
7.28、INT64:
typedef signed __int64 INT64;
7.29、LDAP_UDP_HANDLE:
typedef void* LDAP_UDP_HANDLE;
7.30、LMCSTR:實際就是 unsigned short類型。
typedef unsigned short wchar_t;
typedef const wchar_t* LMCSTR;
7.31、LMSTR:實際就是unsigned short 類型。
typedef unsigned short wchar_t;
typedef wchar_t WCHAR;
typedef WCHAR* LMSTR;
7.32、LONG:
typedef long LONG, *PLONG, *LPLONG;
7.33、LONGLONG:64位。
typedef signed __int64 LONGLONG;
7.34、LONG_PTR:
typedef __int3264 LONG_PTR;
7.35、LONG32:
typedef signed int LONG32;
7.35、LONG64:
typedef signed __int64 LONG64;
7.36、LPCSTR:
typedef const char* LPCSTR;
7.37、LPCVOID:
typedef const void* LPCVOID;
7.38、LPCWSTR:
typedef unsigned short wchar_t;
typedef const wchar_t* LPCWSTR;
7.39、LPSTR:
typedef char* PSTR, *LPSTR;
7.40、LPWSTR:
typedef unsigned short wchar_t;
typedef wchar_t* LPWSTR, *PWSTR;
7.41、NET_API_STATUS:
typedef unsigned long DWORD, *PDWORD, *LPDWORD;
typedef DWORD NET_API_STATUS;
7.42、NTSTATUS:
typedef long NTSTATUS;
7.43、QWORD:64位。
typedef unsigned __int64 QWORD;
7.44、RPC_BINDING_HANDLE:
typedef void* RPC_BINDING_HANDLE;
7.45、SHORT:
typedef short SHORT;
7.46、SIZE_T:不同的兩個環(huán)境下的可變長的類型。
typedef unsigned __int3264 ULONG_PTR;
typedef ULONG_PTR SIZE_T;
7.47、UCHAR:無符號的char類型。
typedef unsigned char UCHAR, *PUCHAR;
7.48、STRING:
typedef unsigned char UCHAR, *PUCHAR;
typedef UCHAR* STRING;
7.49、UINT:
typedef unsigned int UINT;
7.50、UINT8:
typedef unsigned char UINT8;
7.51、UINT16:
typedef unsigned short UINT16;
7.52、UINT32:
typedef unsigned int UINT32;
7.53、UINT64:
typedef unsigned __int64 UINT64;
7.54、ULONG:
typedef unsigned long ULONG, *PULONG;
7.55、ULONG_PTR:
typedef unsigned __int3264 ULONG_PTR;
7.56、ULONG32:
typedef unsigned int ULONG32;
7.56、ULONG64:
typedef unsigned __int64 ULONG64;
7.57、ULONGLONG:
typedef unsigned __int64 ULONGLONG;
7.58、UNICODE:
typedef unsigned short wchar_t;
typedef wchar_t UNICODE;
7.59、USHORT:
typedef unsigned short USHORT;
7.60、VOID:
typedef void VOID, *PVOID, *LPVOID;
7.61、WCHAR:
typedef unsigned short wchar_t;
typedef wchar_t WCHAR, *PWCHAR;
7.62、WORD:
typedef unsigned short WORD, *PWORD, *LPWORD;
7.63、總結(jié):
7.63.1、LPC: L表示long、 P表示point、C表示const;
7.63.2、W:表示寬;
7.63.3、_PTR:都是__int3264: 表示在不同環(huán)境下可變類型。
7.63.4、_int64:表示64位。
7.63.5、HANDLE:void*。
7.63.6、WORD和WCHAR和wchar_t一樣:unsigned short。
7.63.7、DWORD:unsigned long。
7.63.8、8位char、16位short、32位int、64位_int64。
7.63.9、很多的命名都是有規(guī)律可循的。
7.63.10、以上所有的數(shù)據(jù)類型都是對C原生數(shù)據(jù)類型進行再包裝。
轉(zhuǎn)載于:https://www.cnblogs.com/xiaohaige/p/6831839.html
總結(jié)
以上是生活随笔為你收集整理的二、Windows基础数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用一个栈实现另一个栈的排序
- 下一篇: bzoj4873