VARIANT 与其它类型的相互转换(原创) 我想刚做串口通信的同志们可能都遇到过VARIANT 类型变量的问题吧
这个问题前两天使我很苦恼,不知道是什么类型,更不知道如何相互转换,今天终于找到了一些信息
我把这些转换的例子贴出来,与大家共享
// Declare variable VARIANT vtTest; CString strTest; CString strOut; int nTest; // CString->VARIANT->CString strTest = "陈水扁"; vtTest
vt = VT_BSTR; vtTest
bstrVal = strTest
AllocSysString(); strOut = vtTest
bstrVal; MessageBox(strOut); // int->VARIANT->int vtTest
vt = VT_R8; vtTest
iVal = 20; nTest = vtTest
iVal; strOut
Format("%d", nTest); MessageBox(strOut); 至于其它类型应该也是用类似的用法吧(哈哈,其它的我也没试)
下面是 MSDN 中关于这个变量的定义: VARIANT and VARIANTARG This structure is used to describe arguments passed within DISPPARAMS, and VARIANT to specify variant data that cannot be passed by reference
The VARIANT type cannot have the VT_BYREF bit set
typedef struct tagVARIANT { VARTYPE vt; unsigne