Zum Inhalt springen

VARIANT bzw. _variant_t


russkij

Empfohlene Beiträge

Hallo :)

habe folgendes Problem:

eine Funktion liefert mit ein _variant_t.

in dem in einem "SAFAARRAY of R8" meine double-Werte stecken (ich kann die im debugger sehen)

nur ich krieg die nicht raus.

also

_variant_t var = funktion();

double firstDouble = var???

sitze schon seit 2 Stunden und komme nicht wieter.

währe seht dankbar für die Hilfe!!

gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Der _variant_t hat eine VARIANT enthalten, auf welche (nach msdn) über die Operatoren zB operator double() zugegriffen werden kann. Allerdings gilt dies für _variant_t, dies ist die kapselnde Klasse., nicht für VARIANT.

Kannst du mir eine Beispielfunktion nennen, welche ein _variant_t zurückgibt ? (System oä).

Zusatz : Die VARIANT scheint nur eine Variable (Daten) zu enhalten, welche in einem union als unterschiedliche Werte dargestellt werden kann.(zugriff variant.dblVal für Doublewerte, variant ist ein VARIANT).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sorry, lerne das grad. ;-)

Wie gesagt, eine VARIANT ist ein union. Dies kann auch ein SAFEARRAY aein, VARIANT.parray.

Der Zugriff (per API) sollte mit SafeArrayAccessData stattfinden.

(Beispiel aus MSDN) :

psa -> SAFEARRAY ( = variant.parray)

long i, j, min;

BSTR bstrTemp;

BSTR HUGEP *pbstr;

HRESULT hr;

// Get a pointer to the elements of the array.

hr = SafeArrayAccessData(psa, (void HUGEP**)&pbstr);

if (FAILED(hr))

goto error;

// Selection sort.

for (i = 0; i < psa->rgsabound.cElements-1; i++)

{

min = i;

for (j = i+1; j < psa->rgsabound.cElements; j++)

{

if (wcscmp(pbstr[j], pbstr[min]) < 0)

min = j;

}

// Swap array[min] and array.

bstrTemp = pbstr[min];

pbstr[min] = pbstr;

pbstr = bstrTemp;

}

SafeArrayUnaccessData(psa);

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...