【发布时间】:2012-01-25 19:42:19
【问题描述】:
我正在尝试使用VarCmp 函数比较VC++ 中的两个VARIANT 值:
VARIANT a;
VariantInit(&a);
a.vt = VT_UINT;
a.uintVal = 32;
VARIANT b;
VariantInit(&b);
b.vt = VT_UINT;
b.uintVal = 32;
HRESULT hr = VarCmp(&a, &b, LOCALE_USER_DEFAULT);
我预计 VarCmp 会返回 VARCMP_EQ,但它实际上返回 0x80020008,“变量类型错误”。这段代码有什么问题?
编辑:我根据 Joe 的评论尝试了一些其他类型,得到了一些令人惊讶的结果。
不起作用:
a.vt = VT_UINT; a.uintVal = 32;CComVariant a((unsigned int)32);
作品:
a.vt = VT_I4; a.lVal = 32;CComVariant a((long)32);
【问题讨论】:
标签: visual-c++ variant hresult