分类: 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 *);