Win32API有一套和C\C++基本数据类型不同的数据类型.
C\C++语言的数据类型有如下几个缺陷:
数据类型平台相关,在不同平台上,同一个数据类型可能占用不同的空间大小。典型的,在16位系统上,int类型和short int类型长度相同,但在32位平台上,则和long int类型长度相同;
数据类型过于单一,例如在表现数值和布尔这两种情况时,虽然它们都是32位长度,但分开表达显然更加方便和直观;
平台差异,例如__int64, long long, wchar_t, longptr_t这些类型,在不同的平台上可能定义的并不相同
为了解决这些问题,微软使用typedef关键字,为很多常用的C类型均定义了别名,这样一来,要解决源代码移植问题,只需在目标平台上定义相同的一套类型别名,即可解决大部分问题。
常用的Win32API数据类型有:(转)
|
说明: 这些Win32API支持的简单数据类型主要是用来定义函数返回值,消息参数,结构成员。这类数据类型大致可以分为五大类:字符型、布尔型、整型、指针型和句柄型(?). 总共大概有100多种不同的类型 | |||
|
BOOL/BOOLEAN |
8bit,TRUE/FALSE |
布尔型 | |
|
BYTE |
unsigned 8 bit |
| |
|
BSTR CComBSTR _bstr_t |
32 bit |
BSTR是指向字符串的32位指针 是对BSTR的封装 是对BSTR的封装 | |
|
CHAR |
8 bit |
(ANSI)字符类型 | |
|
COLORREF |
32 bit |
RGB颜色值 整型 | |
|
DWORD |
unsigned 32 bit |
整型 | |
|
FLOAT |
float型 |
float型 | |
|
HANDLE |
|
Object句柄 | |
|
HBITMAP |
|
bitmap句柄 | |
|
HBRUSH |
|
brush句柄 | |
|
HCURSOR |
|
cursor句柄 | |
|
HDC |
|
设备上下文句柄 | |
|
HFILE |
|
OpenFile打开的File句柄 | |
|
HFONT |
|
font句柄 | |
|
HHOOK |
|
hook句柄 | |
|
HKEY |
|
注册表键句柄 | |
|
HPEN |
|
pen句柄 | |
|
HWND |
|
window句柄 | |
|
INT |
-------- |
-------- | |
|
LONG |
-------- |
--------- | |
|
LONGLONG |
|
64位带符号整型 | |
|
LPARAM |
32 bit |
消息参数 | |
|
LPBOOL |
|
BOOL型指针 | |
|
LPBYTE |
|
BYTE型指针 | |
|
LPCOLOREF |
|
COLORREF型指针 | |
|
LPCSTR/LPSTR/PCSTR |
|
指向8位(ANSI)字符串类型指针 | |
|
LPCWSTR/LPWSTR/PCWSTR |
|
指向16位Unicode字符串类型 | |
|
LPCTSTR/LPTSTR/PCTSTR |
|
指向一8位或16位字符串类型指针 | |
|
LPVOID |
|
指向一个未指定类型的32位指针 | |
|
LPDWORD |
|
指向一个DWORD型指针 | |
|
其他相似类型: LPHANDLE、LPINT、LPLONG、LPWORD、LPRESULT PBOOL、PBOOLEAN、PBYTE、PCHAR、PDWORD、PFLOAT、PHANDLE、PINT、PLONG、PSHORT…… 说明:(1)在16位系统中 LP为16bit,P为8bit,在32位系统中都是32bit(此时等价) (2)LPCSTR等 中的C指Const,T表示TCHAR模式即可以工作在ANSI下也可UNICODE | |||
|
SHORT |
usigned |
整型 | |
|
其他UCHAR、UINT、ULONG、ULONGLONG、USHORT为无符号相应类型 | |||
|
TBYTE |
|
WCHAR型或者CHAR型 | |
|
TCHAR |
|
ANSI与unicode均可 | |
|
VARIANT _variant_t COleVariant |
|
一个结构体参考OAIDL.H _variant_t是VARIANT的封装类 COleVariant也是VARIANT的封装类 | |
|
|
|
| |
|
|
|
| |
|
WNDPROC |
|
指向一个窗口过程的32位指针 | |
|
WCHAR |
|
16位Unicode字符型 | |
|
WORD |
|
16位无符号整型 | |
|
WPARAM |
|
消息参数 | |
|
MFC 独有 数据 类型 |
下面两个数据类型是微软基础类库中独有的数据类型 | ||
|
POSITION |
标记集合中一个元素的位置的值,被MFC中的集合类所使用 | ||
|
LPCRECT |
指向一个RECT结构体常量(不能修改)的32位指针 | ||
|
CString |
其实是MFC中的一个类 | ||
|
|
|
| |
说明:
(1)-------表示省略
(2)1Byte=8Bit,
字与机器有关,在8位系统中:字=1字节,16位系统中,1字=2字节,32位中:1字=4字节,
64位中1字=8字节.不要搞混这些概念.
本文详细介绍了 Win32API 中使用的数据类型,包括布尔型、整型、指针型和句柄型等,并解释了这些类型如何帮助解决跨平台问题。
3451

被折叠的 条评论
为什么被折叠?



