资源描述:
《常用数据类型转换》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、常用数据类型转换常用数据类型使用转换详解 先定义一些常见类型变量借以说明 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中,最后一个数字表
2、示十进制 itoa(i,temp,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(
3、temp,"123"); 短整型(int) i=atoi(temp); 长整型(long) l=atol(temp); 浮点(double) d=atof(temp); 四、其它数据类型转换到CString 使用CString的成员函数Format来转换,例如: 整数(int) str.Format("%d",i); 浮点数(float) str.Format("%f",i); 字符串指针(char*)等已经被CString构造函数支持的数据类型可以直接赋值 str=usernam
4、e; 五、BSTR、_bstr_t与CComBSTR CComBSTR、_bstr_t是对BSTR的封装,BSTR是指向字符串的32位指针。 char*转换到BSTR可以这样:BSTRb=_com_util::ConvertStringToBSTR("数据");//使用前需要加上头文件comutil.h 反之可以使用char*p=_com_util::ConvertBSTRToString(b); 六、VARIANT、_variant_t与COleVariant VARIANT的结构可以参考头文件
5、VC98IncludeOAIDL.H中关于结构体tagVARIANT的定义。 对于VARIANT变量的赋值:首先给vt成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值,举个例子: VARIANTva; inta=2001; va.vt=VT_I4;//指明整型数据 va.lVal=a;//赋值 对于不马上赋值的VARIANT,最好先用VoidVariantInit(VARIANTARGFAR*pvarg);进行初始化,其本质是将vt设置为VT_EMPTY,下表我们列举vt与常用数据
6、的对应关系: unsignedcharbVal;VT_UI1 shortiVal;VT_I2 longlVal;VT_I4 floatfltVal;VT_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*pdi
7、spVal;VT_DISPATCH SAFEARRAYFAR*parray;VT_ARRAY
8、* unsignedcharFAR*pbVal;VT_BYREF
9、VT_UI1 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_BO
15、OL SCODEFAR*pscode;VT_BYREF
16、VT_ERROR CYFAR*pcyVal;VT_BYREF
17、VT_CY DATEFAR*pdate;VT_BYREF
18、VT_DATE BSTRFAR*pbstrVal;VT_BYREF
19、VT_BSTR IUnknownFAR*FAR*ppunkVal;VT_BYREF
20、VT_UNKNOWN IDispatchFAR*FAR*ppd