预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

VARIANT与其它类型的相互转换(原创) 我想刚做串口通信的同志们可能都遇到过VARIANT类型变量的问题吧。这个问题前两天使我很苦恼,不知道是什么类型,更不知道如何相互转换,今天终于找到了一些信息。我把这些转换的例子贴出来,与大家共享。 //DeclarevariableVARIANTvtTest;CStringstrTest;CStringstrOut;intnTest; //CString->VARIANT->CStringstrTest="陈水扁";vtTest.vt=VT_BSTR;vtTest.bstrVal=strTest.AllocSysString();strOut=vtTest.bstrVal;MessageBox(strOut); //int->VARIANT->intvtTest.vt=VT_R8;vtTest.iVal=20;nTest=vtTest.iVal;strOut.Format("%d",nTest);MessageBox(strOut); 至于其它类型应该也是用类似的用法吧(哈哈,其它的我也没试)。下面是MSDN中关于这个变量的定义: VARIANTandVARIANTARG ThisstructureisusedtodescribeargumentspassedwithinDISPPARAMS,andVARIANTtospecifyvariantdatathatcannotbepassedbyreference.TheVARIANTtypecannothavetheVT_BYREFbitset. typedefstructtagVARIANT{ VARTYPEvt; unsignedshortwReserved1; unsignedshortwReserved2; unsignedshortwReserved3; union{ unsignedcharbVal; shortiVal; longlVal; floatfltVal;. doubledblVal; VARIANT_BOOLboolVal; SCODEscode; CYcyVal; DATEdate; BSTRbstrVal; IUnknownFAR*punkVal; IDispatchFAR*pdispVal; SAFEARRAYFAR*parray; unsignedcharFAR*pbVal; shortFAR*piVal; longFAR*plVal; floatFAR*pfltVal; doubleFAR*pdblVal; VARIANT_BOOLFAR*pboolVal; SCODEFAR*pscode; CYFAR*pcyVal; DATEFAR*pdate; BSTRFAR*pbstrVal; IUnknownFAR*FAR*ppunkVal; IDispatchFAR*FAR*ppdispVal; SAFEARRAYFAR*FAR*pparray; VARIANTFAR*pvarVal; voidFAR*byref; }; }; typedefstructFARSTRUCTtagVARIANTVARIANT; typedefstructFARSTRUCTtagVARIANTVARIANTARG; Members vt wReserved1 wReserved2 wReserved3 bVal VT_UI1. iVal VT_I2. lVal VT_I4. fltVal VT_R4. dblVal VT_R8. boolVal VT_BOOL. scode VT_ERROR. cyVal VT_CY. date VT_DATE. bstrVal VT_BSTR. punkVal VT_UNKNOWN. pdispVal VT_DISPATCH. parray VT_ARRAY|*. pbVal VT_BYREF|VT_UI1. piVal VT_BYREF|VT_I2. plVal VT_BYREF|VT_I4. pfltVal VT_BYREF|VT_R4. pdblVal VT_BYREF|VT_R8. pboolVal VT_BYREF|VT_BOOL. pscode VT_BYREF|VT_ERROR. pcyVal VT_BYREF|VT_CY. pdate VT_BYREF|VT_DATE. pbstrVal VT_BYREF|VT_BSTR. ppunkVal; VT_BYREF|VT_UNKNOWN. ppdispVal; VT_BYREF|VT_DISPATCH. pparray; VT_ARRAY|*. pvarVal VT_BYREF|VT_VARIANT. byref Gener