[英]Get value of VARIANT to int
我使用程序訪問一個COM對象(在我的示例CANoe中),並調用方法get_Value以獲取COM對象中變量的值。 指針pVariable是指向變量COM對象的指針:
VARIANT variable;
result = pVariable->get_Value(&variable);
為了在c ++中使用值,我想將值保存在VARIANT變量中的整數變量中。 如何將VARIANT變量中的值轉換為整數變量?
在確保獲得正確的整數值之后,只需訪問變量值即可。 像這樣:
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);
OleAuto.h中有很多變體訪問宏。 獲得值后,應確保其具有正確的類型。 然后您可以閱讀它:
int value;
if (V_VT(variable) == VT_INT)
{
value = V_INT(variable);
}
為變體定義了幾種整數類型。 請查看wtypes.h,並檢查當前變體對象中存儲了什么實際類型,並使用適當的V_xxx宏。
這取決於您所討論的變量類型。 例如,如果您嘗試轉換為整數,則具有日期值的變體可能會失敗。
HRESULT hr = VariantChangeType (&VariantDest, &VariantSource, 0, VT_I4);
long t = VariantSource.lVal;
不要忘記檢查HRESULT值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.