VC++常用数据类型及其操作详解
来源:互联网 发布:网络中沙发是什么意思 编辑:程序博客网 时间:2024/06/10 15:01
VC++常用数据类型及其操作详解 (2008-08-04 01:01:34)
一. VC常用数据类型列表
二. 常用数据类型转化
2.1数学类型变量与字符串相互转换
2.2 CString及string,char *与其他数据类型的转换和操作
●CString,string,char*的综合比较
●数学类型与CString相互转化
●CString与char*相互转换举例
●CString 与 BSTR 型转换
●VARIANT 型转化成 CString 型
2.3 BSTR、_bstr_t与CComBSTR
2.4 VARIANT 、_variant_t 与 COleVariant
一.VC常用数据类型列表
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<<szChar;//输出为1010
类似函数列表:
_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<<temp;
类似的函数列表:
_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 *);
还有很多,请自行研究
2.2.CString及string,char *与其他数据类型的转换和操作
(1)CString,string,char*的综合比较(这部分CSDN上的作者joise的文章
<< CString,string,char*的综合比较>>写的很详细,请大家在仔细阅读他的文章.
地址: http://blog.csdn.net/joise/
或参考附录:
(2)转换:
●数学类型与CString相互转化
数学类型转化为CString
可用Format函数,举例:
CString s;
int i = 64;
s.Format("%d", i)
CString转换为数学类型:举例CString strValue("1.234");
double dblValue;
dblValue = atof((LPCTSTR)strValue);
●CString与char*相互转换举例
CString strValue(“Hello”);
char *szValue;
szValue=strValue.GetBuffer(szValue);
也可用(LPSTR)(LPCTSTR)对CString// 进行强制转换.
szValue=(LPSTR)(LPCTSTR)strValue;
反过来可直接赋值:
char *szChar=NULL;
CString strValue;
szChar=new char[10];
memset(szChar,0,10);
strcpy(szChar,”Hello”);
strValue=szChar;
char[]是字符数组
每个char是一个Unicode编码字符
byte[]是字节数组
每个byte是一字节无符号整数
char 是一个字符,如果用来表示数值的话,能表示-128--127之间
byte 是无符号 char 如果用来表示数值的话,能表示0-255之间
- VC++VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解(
- 转载:VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- VC++常用数据类型及其操作详解
- 关于VC++的字符串
- 国庆出游购物:让手机一淘帮你比价
- 宏
- 缓冲区溢出漏掘之整数范围限制浅析
- Oracle关于时间的各种处理
- VC++常用数据类型及其操作详解
- IMSI 国际移动用户识别码 IMEI 国际移动装备辨识码
- 变频器RS485通讯协议
- 把文本中的记录写入数据库中
- sprintf vs wsprintf
- SelectedIndexChanged事件, SelectedValueChanged事件和SelectionChangeCommitted事件的区别及应用
- Android[初级教程]第三篇 RadioButton和CheckBox控件
- 如何使网站能浏览flv文件:网站属性----http头----mime类型
- 和我一起演续集