资源描述:
《VC常用数据类型使用转换详解》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC常用数据类型使用转换详解 我们先定义一些常见类型变量借以说明inti=100;longl=2001;floatf=300.2;doubled=12345.119;charusername[]="女侠程佩君";chartemp[200];char*buf;CStringstr;_variant_tv1;_bstr_tv2;一、其它数据类型转换为字符串短整型(int)itoa(i,temp,10);///将i转换为字符串放入temp中,最后一个数字表示十进制itoa(i,temp,2);///按二进制
2、方式转换 长整型(long)ltoa(l,temp,10);二、从其它包含字符串的变量中获取指向该字符串的指针CString变量str="2008北京奥运";buf=(LPSTR)(LPCTSTR)str; BSTR类型的_variant_t变量v1=(_bstr_t)"程序员";buf=_com_util::ConvertBSTRToString((_bstr_t)v1);三、字符串转换为其它数据类型strcpy(temp,"123"); 短整型(int)i=atoi(temp); 长整型(long
3、)l=atol(temp); 浮点(double)d=atof(temp);四、其它数据类型转换到CString使用CString的成员函数Format来转换,例如:整数(int)str.Format("%d",i); 浮点数(float)str.Format("%f",i); 字符串指针(char*)等已经被CString构造函数支持的数据类型可以直接赋值str=username;五、BSTR、_bstr_t与CComBSTRCComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的
4、32位指针。char*转换到BSTR可以这样:BSTRb=_com_util::ConvertStringToBSTR("数据");///使用前需要加上头文件comutil.h反之可以使用char*p=_com_util::ConvertBSTRToString(b);六、VARIANT、_variant_t与COleVariantVARIANT的结构可以参考头文件VC98IncludeOAIDL.H中关于结构体tagVARIANT的定义。对于VARIANT变量的赋值:首先给vt成员赋值,指明数据
5、类型,再对联合结构中相同数据类型的变量赋值,举个例子:VARIANTva;inta=2001;va.vt=VT_I4;///指明整型数据va.lVal=a;///赋值对于不马上赋值的VARIANT,最好先用VoidVariantInit(VARIANTARGFAR*pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据的对应关系:unsignedcharbVal;VT_UI1 shortiVal;VT_I2 longlVal;VT_I4 floatfltVal;VT
6、_R4 doubledblVal;VT_R8 VARIANT_BOOLboolVal;VT_BOOL SCODEscode;VT_ERROR CYcyVal;VT_CY DATEdate;VT_DATE BSTRbstrVal;VT_BSTR IUnknownFAR*punkVal;VT_UNKNOWN IDispatchFAR*pdispVal;VT_DISPATCH SAFEARRAYFAR*parray;VT_ARRAY
7、* unsignedcharFAR*pbVal;VT_BYREF
8、VT_U
9、I1 shortFAR*piVal;VT_BYREF
10、VT_I2 longFAR*plVal;VT_BYREF
11、VT_I4 floatFAR*pfltVal;VT_BYREF
12、VT_R4 doubleFAR*pdblVal;VT_BYREF
13、VT_R8 VARIANT_BOOLFAR*pboolVal;VT_BYREF
14、VT_BOOL SCODEFAR*pscode;VT_BYREF
15、VT_ERROR CYFAR*pcyVal;VT_BYREF
16、VT_CY DATEFAR*pdate;VT_BYREF
17、
18、VT_DATE BSTRFAR*pbstrVal;VT_BYREF
19、VT_BSTR IUnknownFAR*FAR*ppunkVal;VT_BYREF
20、VT_UNKNOWN IDispatchFAR*FAR*ppdispVal;VT_BYREF
21、VT_DISPATCH SAFEARRAYFAR*FAR*pparray;VT_ARRAY
22、* VARIANTFAR*pvarVal;VT_BYREF
23、VT_VARIANT voidFAR*byref;VT_B