分类: WINDOWS
2007-01-16 17:12:38
|
Type |
Default Size |
Description | |
|
基 础 类 型
全 是 小 写
|
说明:这些基础数据类型对于MFC还是API都是被支持的 | ||
| boolean | unsigned 8 bit , | 取值TRUE/FALSE | |
| byte | unsigned 8 bit, | 整数,输出按字符输出 | |
| char | unsigned 8 bit, | 字符 | |
| double | signed 64 bit | 浮点型 | |
| float | signed32 bit | 浮点型 | |
| handle_t | Primitive handle type | ||
| hyper | signed 64 bit | 整型 | |
| int | signed 32 bit | 整型 | |
| long | signed 32 bit | 整型 | |
| short | signed 16 bit | 整型 | |
| small | signed 8 bit | 整型 | |
| void * | 32-bit | 指向未知类型的指针 | |
| wchar_t | unsigned 16 bit | 16位字符,比char可容纳更多的字符 | |
| Win32
API 常 用 数 据 类 型
全 大 写 |
说明: 这些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字节.不要搞混这些概念.
二.常用数据类型转化及操作
2.1 数学类型变量与字符串相互转换(这些函数都在STDLIB.H里)
(1)将数学类型转换为字符串可以用以下一些函数:
举例: _CRTIMP char * __cdecl _itoa(int, char *, int);//这是一个将数字转换为一个字符串类型的函数,最后一个int表示转换的进制
如以下程序:
int iTyep=3;
char *szChar;
itoa(iType,szChar,2);
cout<
类似函数列表:
_CRTIMP char * __cdecl _itoa(int, char *, int);//为了完整性,也列在其中
_CRTIMP char * __cdecl _ultoa(unsigned long, char *, int);
_CRTIMP char * __cdecl _ltoa(long, char *, int);
_CRTIMP char * __cdecl _i64toa(__int64, char *, int);
_CRTIMP char * __cdecl _ui64toa(unsigned __int64, char *, int);
_CRTIMP wchar_t * __cdecl _i64tow(__int64, wchar_t *, int);
_CRTIMP wchar_t * __cdecl _ui64tow(unsigned __int64, wchar_t *, int);
_CRTIMP wchar_t * __cdecl _itow (int, wchar_t *, int);//转换为长字符串类型
_CRTIMP wchar_t * __cdecl _ltow (long, wchar_t *, int);
_CRTIMP wchar_t * __cdecl _ultow (unsigned long, wchar_t *, int);
还有很多,请自行研究
(2)将字符串类型转换为数学类型变量可以用以下一些函数:
举例: _CRTIMP int __cdecl atoi(const char *);//参数一看就很明了
char *szChar=”88”;
int temp(0);
temp=atoi(szChar);
cout<
类似的函数列表:
_CRTIMP int __cdecl atoi(const char *);
_CRTIMP double __cdecl atof(const char *);
_CRTIMP long __cdecl atol(const char *);
_CRTIMP long double __cdecl _atold(const char *);
_CRTIMP __int64 __cdecl _atoi64(const char *);
_CRTIMP double __cdecl strtod(const char *, char **);//
_CRTIMP long __cdecl strtol(const char *, char **, int);//
_CRTIMP long double __cdecl _strtold(const char *, char **);
_CRTIMP unsigned long __cdecl strtoul(const char *, char **, int);
_CRTIMP double __cdecl wcstod(const wchar_t *, wchar_t **);//长字符串类型转换为数学类型
_CRTIMP long __cdecl wcstol(const wchar_t *, wchar_t **, int);
_CRTIMP unsigned long __cdecl wcstoul(const wchar_t *, wchar_t **, int);
_CRTIMP int __cdecl _wtoi(const wchar_t *);
_CRTIMP long __cdecl _wtol(const wchar_t *);
_CRTIMP __int64 __cdecl _wtoi64(const wchar_t *);