簡體   English   中英

將VARIANT的值獲取為int

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM