Konvertieren VARIANTE...?

Hinweis:

  • Der Versuch zum aufrufen einer Methode eines interfaces, von denen der Rückgabetyp ist _variant_t

Code:

_variant_t resultsDataString;

_bstr_t simObjectNames;

simObjectNames = SysAllocString (L"TEST example 3");

resultsDataString = pis8->GetSimObject (simObjectNames);

inline-Funktion dargestellt unten, enthalten in .tli DATEI:

inline _variant_t IS8Simulation::GetSimObject ( _bstr_t Name ) {
    VARIANT _result;
    VariantInit(&_result);
     HRESULT _hr = get_SimObject(Name, &_result);
   if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
    return _variant_t(_result, false);
}

Hinweis:

  • resultsDataString ist struct tagVARIANT:
    • VARTYPE vt 9 (unsigned short)
    • IDispatch IDispatch-Schnittstellenzeiger

Frage

  • Wie kann ich dann konvertieren oder Extrakt den Wert?
  • Möglich mit B. VariantChangeType?
  • Anderen Weg?

Edit:

Hinweis:

  • Suchen transformieren Sie die folgenden Visual Basic-code in Visual C++

  • MFC oder ATL, wenn es sein muss

  • Ideal, reinen C++ -

Visual basic äquivalent:

Public example1, example2 As SIMUL8.S8SimObject
Dim numberOfexamples As Variant
Dim resultString As Variant

Set example1 = MySimul8.SimObject("Example 1")
Set example2 = MySimul8.SimObject("Example 2")

numberOfexamples = example1.CountContents + example2.CountContents

resultString = CStr(numberOfexamples) & "*"
InformationsquelleAutor Aaron | 2009-03-03
Schreibe einen Kommentar