帮忙讲解一下
long l=222;
ing i=100;
_variant_t lVal(l);
lVal = (long)i;
查了半天,没找到答案还有就是如下的
_variant_t vStr;
BSTR bStr;
vStr=rgMyRge.GetItem(_variant_t((long)1),_variant_t((long)h));
bStr = (_bstr_t)vStr;
多谢了。
long l=222;
ing i=100;
_variant_t lVal(l);
lVal = (long)i;
查了半天,没找到答案还有就是如下的
_variant_t vStr;
BSTR bStr;
vStr=rgMyRge.GetItem(_variant_t((long)1),_variant_t((long)h));
bStr = (_bstr_t)vStr;
多谢了。
for(int i=0;i<6;i++)
{
if(((char)*(bStr+i)>='0')&&((char)*(bStr+i)<='9'))
out2[i]=(char)*(bStr+i);
}多谢各位高手了
VARTYPE vt;
unsigned short wReserved1;
unsigned short wReserved2;
unsigned short wReserved3;
union {
Byte bVal; // VT_UI1.
Short iVal; // VT_I2.
long lVal; // VT_I4.注意看这行
float fltVal; // VT_R4.
// ...
};
};long类型对应的是lVal,所以你要用_variant_t lVal(l)。
typedef struct FARSTRUCT tagVARIANT VARIANTARG;
typedef struct tagVARIANT {
VARTYPE vt;
unsigned short wReserved1;
unsigned short wReserved2;
unsigned short wReserved3;
union {
unsigned char bVal; // VT_UI1.
short iVal; // VT_I2 .
long lVal; // VT_I4 .
float fltVal; // VT_R4 .
double dblVal; // VT_R8 .
VARIANT_BOOL boolVal; // VT_BOOL.
SCODE scode; // VT_ERROR.
CY cyVal; // VT_CY .
DATE date; // VT_DATE.
BSTR bstrVal; // VT_BSTR.
IUnknown FAR* punkVal; // VT_UNKNOWN.
IDispatch FAR* pdispVal; // VT_DISPATCH.
SAFEARRAY FAR* parray; // VT_ARRAY|*.
unsigned char FAR* pbVal; // VT_BYREF|VT_UI1.
short FAR* piVal; // VT_BYREF|VT_I2.
long FAR* plVal; // VT_BYREF|VT_I4.
float FAR* pfltVal; // VT_BYREF|VT_R4.
double FAR* pdblVal; // VT_BYREF|VT_R8.
VARIANT_BOOL FAR* pboolVal; // VT_BYREF|VT_BOOL.
SCODE FAR* pscode; // VT_BYREF|VT_ERROR.
CY FAR* pcyVal; // VT_BYREF|VT_CY.
DATE FAR* pdate; // VT_BYREF|VT_DATE.
BSTR FAR* pbstrVal; // VT_BYREF|VT_BSTR.
IUnknown FAR* FAR* ppunkVal; // VT_BYREF|VT_UNKNOWN.
IDispatch FAR* FAR* ppdispVal; // VT_BYREF|VT_DISPATCH.
SAFEARRAY FAR* FAR* pparray; // VT_ARRAY|*.
VARIANT FAR* pvarVal; // VT_BYREF|VT_VARIANT.
void FAR* byref; // Generic ByRef.
};
};
long l=222;
ing i=100;
_variant_t lVal(l);
lVal = (long)i;
这段代码的结果是什么?
lVal 最后等于多少。谢谢
v.vt=VT_I4;
v.IVal=i;
它也有重载一个参数类型为long的赋值操作符,所以lval = (long)i; 就是调用了它的这个赋值操作符函数,结果vt==VT_I4, lval==100
这个,我还是没懂,呵呵。再麻烦一下吧
(((char)*(bStr+i)>='0')&&((char)*(bStr+i) <='9'))
就是判断第i+1个元素是不是'0'-'9'之间,如果是的话,估计就是想转换成数字来做某些操作了