Question sur le type "Variant"

Signaler
Messages postés
88
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2005
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
J'utilise une api, où je recupere une collection d'objet de type Banane
Pour récuperer l'objet il faut que j'utilise un *variant.
Comment caster mon v en mon objet Banane ?

Code:
VARIANT *v;
ppCollection->get_Item(0,v);

Merci pour tous

5 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
VARIANT *v; bien certain qu'il va pointer correctement ???
VariantInit() sera bien appele ???

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
88
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2005

Voici plus explicitement mon probleme

VARIANT *v; 
IRTCBuddy *BuddyWatch=NULL; 
ppCollection->get_Item(0,v); 


Il faut que v soit casté en IRTCBuddy
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
VARIANT *v;
tu declares ici un pointeur donc j'insite, sur quelle zone de donnees pointe-t-il ?

Pour le reste:
BuddyWatch = (IRTCBuddy*) v; si v est pointeur.
BuddyWatch = (IRTCBuddy*) &v; si v est VARIANT.

Pour etre franc, j'ai des doutes sur l'aboutissement, mais sait-on jamais...

ciao...
BruNews, Admin CS, MVP Visual C++
Messages postés
88
Date d'inscription
mercredi 10 mars 2004
Statut
Membre
Dernière intervention
5 juillet 2005

Je sais pas sur que zone de données il pointe. Comment le savoir ?

Sinon je fais ça BuddyWatch = (IRTCBuddy*) v
au compilo ca marche, mais si je veux utiliser apres une méthode de BuddyWatch plantage.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
29
au compilo, rien ne marche, il produit un exe a la finale si la syntaxe employee dans le source est interpretable, rien de plus.

Va te plonger dans un bouquin de C, tu gagneras du temps. Tant que manqueront les bases, sera impossible d'avancer.
Un pointeur DOIT TOUJOURS pointer sur une zone memoire reservee, c'est dans les bases minimales a savoir.

ciao...
BruNews, Admin CS, MVP Visual C++