【发布时间】:2013-10-11 19:27:15
【问题描述】:
以下代码来自 MSDN 源代码示例,我有一个问题。
为什么我们需要使用多个VARIANT result; 定义来定义不同的变量?我们能否以更短的方式初始化不同类型(主要是整数和字符串)的VARIANT 变量?简洁安全的方法。
另外,可以将VariantInit(&result) 替换为result.vt = VT_EMPTY 以将VARIANT 标记为空吗?
int main()
{
//blahblahbla
{
VARIANT x;
x.vt = VT_R4; // 4-byte real.
x.fltVal = 1.2f;
wprintf(L"Set FloatProperty = %.2f\n", x.fltVal);
hr = AutoWrap(DISPATCH_PROPERTYPUT, NULL, pSimpleObj, L"FloatProperty", 1, x);
}
{
VARIANT result;
VariantInit(&result);
hr = AutoWrap(DISPATCH_PROPERTYGET, &result, pSimpleObj, L"FloatProperty", 0);
wprintf(L"Get FloatProperty = %.2f\n", result.fltVal);
}
{
VARIANT result;
VariantInit(&result);
hr = AutoWrap(DISPATCH_METHOD, &result, pSimpleObj, L"HelloWorld", 0);
wprintf(L"Call HelloWorld => %s\n", result.bstrVal);
VariantClear(&result);
}
}
【问题讨论】:
标签: visual-c++ variant