_variant_t是VARIANT的封装类,其赋值可以使用强制类型转换,其构造函数会自动处理这些数据类型。
CString转为VARIANT
COleVariant v;
CString str = "this is test";
v = str;
VARIANT v1 = v;
or
v1=(COleVariant )str;
byte[]转为CString
byte databyte[]={0xc4,0xe3,0xba,0xc3,0xd6,0xd0,0xb9,0xfa,0x00};
CString str;str=(CString) databyte;
VARIANT 转为CString
VARIANT variant1;
COleSafeArray safeArray;
CString str1;
CString str2;
LONG len,k;//定义长整型变量len,k
BYTE rxdata[2048];//定义BYTE型数组
variant1 = m_Com.get_Input();//把接收到的数据存放到VARIANT型变量里
safeArray = variant1;//VARIANT型变量转换为ColeSafeArray型变量
len = safeArray.GetOneDimSize(); //获取长度
memset(rxdata, 0, 2048);
BYTE* btp = new BYTE[len]; //动态创建数组
for(k=0;k<len;k++)
{
safeArray.GetElement(&k,rxdata+k);
//得到接接收到的数据放到BYTE型数组rxdata里
safeArray.GetElement(&k, btp + k);
str1.AppendChar(*(btp+k)); //方法一 动态创建
}
str2=(CString)rxdata; //方法2 固定长度必须清零 memset(rxdata, 0, 2048);