将 VARIANT 的值获取为 int

la-*_*-ga 2 c++ com variant

我使用程序访问 COM 对象(在我的示例 CANoe 中)并调用 get_Value 方法来获取 COM 对象中变量的值。指针 pVariable 是指向变量的 COM 对象的指针:

 VARIANT variable; 
 result = pVariable->get_Value(&variable);
Run Code Online (Sandbox Code Playgroud)

为了使用 c++ 中的值,我想将 VARIANT 变量中的值保存在整数变量中。如何将 VARIANT 变量中的值转换为整型变量?

Han*_*ant 5

确保获得正确的整数值后,只需访问变体值即可。像这样:

 VARIANT variable; 
 HRESULT hr = pVariable->get_Value(&variable);
 if (SUCCEEDED(hr)) hr = VariantChangeType(&variable, &variable, 0, VT_I4);
 if (SUCCEEDED(hr)) this->Yadayada = variable.lVal;
 else ReportFailure(hr);
Run Code Online (Sandbox Code Playgroud)