Accueil > Forum > > > > Créer un VARIANT contenant un tableau de long
Créer un VARIANT contenant un tableau de long
vendredi 22 février 2008 à 12:01:02 |
Créer un VARIANT contenant un tableau de long

jayjay9531
|
Bonjour, Je viens vers vous parce que je croise assez si=ouvent ces VARIANT ou _variant_t que je n'arrive pas à bien utiliser. Grâce à MSDN et au forum j'arrive à travailler avec quand il s'agit de récupérer des infos dedans, mais je dois utiliser une fonction où je dois créer ce VARIANT. Je vous donne la description :
IAllplFileSet::Attach Assigns a list of drawing files to a fileset. HRESULT Attach([in] VARIANT FileNumbers) Parameters FileNumbers Input parameter, a VARIANT containing an array of VT_14. Each value in the array reflects a drawing file number.
Alors le type VT_14 il me semble que c'est "long". Mais j'arrive pas à envoyer la variable. Est ce que quelqu'un aurait une idée de comment créer un tableau de "long", lui assigner les valeurs de 200 à 240 par exemple et le mettre dans un VARIANT ?
Je vous remercie par avance pour vos réponses.
|
|
vendredi 22 février 2008 à 13:59:01 |
Re : Créer un VARIANT contenant un tableau de long

juju12
|
création : SafeArrayCreate()
|
|
vendredi 22 février 2008 à 14:44:15 |
Re : Créer un VARIANT contenant un tableau de long
|
vendredi 22 février 2008 à 15:02:33 |
Re : Créer un VARIANT contenant un tableau de long

jayjay9531
|
>>BruNews : C'est du C++, alors je suis pas sûr de bien comprendre ta réponse. Mon problème c'est pour obtenir une variable de type VARIANT à passer en paramètre, parce qu'un tableau de long, cette fonction elle ne le prendra pas.
>>juju12 : J'ai vu pas mal de SafeArrayCreate(), mais je comprend pas comment obtenir ma variable VARIANT avec ça, tu pourrais m'en dire plus ?
|
|
vendredi 22 février 2008 à 15:29:43 |
Re : Créer un VARIANT contenant un tableau de long

BruNews
|
Moi c'est que tu n'aies pas lu mon source dont je suis certain sinon tu aurais vu que tout le code créant les SafeArray est en C.
ciao... BruNews, MVP VC++
|
|
vendredi 22 février 2008 à 15:39:38 |
Re : Créer un VARIANT contenant un tableau de long

rt15
|
Réponse acceptée !
Salut,
Ca ressemble peut être à quelque chose comme ça (Mais vérifie par rapport au code de BruNews) : #include <windows.h> #include <oleauto.h>
int main() { SAFEARRAYBOUND lpBounds[1]; // Pour demander les dimensions du tableau SAFEARRAY* lpArray; // Récupération du tableau int* lpData; // Données du tableau VARIANT var; // Le variant créé int i;
// Initialisation du variant VariantInit(&var);
// Précision de ce que contient le variant var.vt = VT_ARRAY | VT_I4;
// On veut 41 entiers, indicés de 0 à 40 lpBounds[0].lLbound = 0; // Borne inférieure lpBounds[0].cElements = 41; // Nombre d'éléments
// Création du tableau lpArray = SafeArrayCreate(VT_I4, 1, lpBounds); if (! lpArray) return 1;
// Il faut demander pour accèder au contenu du tableau SafeArrayAccessData(lpArray, &lpData);
// On remplit avec les entiers de 200 à 240 for (i = 0 ; i < 41 ; i++) lpData[i] = 240 + i;
// On indique que l'on a terminé d'accèder au données SafeArrayUnaccessData(lpArray);
// Mise en place du tableau dans le variant var.parray = lpArray;
return 0; }
|
|
vendredi 22 février 2008 à 15:39:47 |
Re : Créer un VARIANT contenant un tableau de long

jayjay9531
|
Ah pardon BruNews, j'avais pas vu en bas le fichier "CodAsmC.txt". Je lisais le code et quand j'ai compris que c'était du VB je me suis demandé si tu avais pas posté ici la réponse d'un autre topic  Alors je vais tester ça. Je suis pas sûr de bien comprendre une chose, c'est le lien entre les SAFEARRAY et les VARIANT. Je reviens accepter la réponse si ça passe, merci et désolé d'avoir parlé trop vite...
|
|
vendredi 22 février 2008 à 15:56:30 |
Re : Créer un VARIANT contenant un tableau de long

rt15
|
Les variables de types VARIANT peuvent contenir n'importe quoi : un tableau, un entier, un booléen, une chaîne...
L'attribut vt permet de savoir ce qui est réellement dans le VARIANT.
Dans ton cas, il faut que tu précise que ton VARIANT est un VT_ARRAY |
VT_I4, et que te mette en place le tableau dans le bon attribut.
|
|
vendredi 22 février 2008 à 16:07:19 |
Re : Créer un VARIANT contenant un tableau de long

jayjay9531
|
Ok merci beaucoup. J'ai vu ta porcédure et je suis en train de la tester. Ok pour le type VARIANT, ça devient plus clair.
Sinon pour l'instant j'ai cette erreur pour la ligne : "SafeArrayAccessData(lpArray, &lpData);" -->"error C2664: 'SafeArrayAccessData' : impossible de convertir le paramètre 2 de 'int **' en 'void **'"
Pourtant je retrouve la même ligne dans la procédure de BruNews. Je vais regarder ça de plus près...
|
|
vendredi 22 février 2008 à 16:18:41 |
Re : Créer un VARIANT contenant un tableau de long

rt15
|
S'il veut pas le convertir tout seul lpData de (int**) vers (void**), suffit de le forcer un peu : SafeArrayAccessData(lpArray, (void **)&lpData);
Ce type d'erreur est assez courant tu verras. Deux cas possibles :
1 Soit on a fait une vrai erreur et on a mis par exemple un int alors que la fonction attendait un int*.
2 Soit le compilo chipote et il suffit de caster comme je l'ai fait ci-dessus.
|
|
Cette discussion est classée dans : créer, arrive, long, tableau, variant
Répondre à ce message
Sujets en rapport avec ce message
Créer un tableau [ par pde ]
Comment créer en C++ un tableau de type feuille Excel, comportant des lignes et des colonnes, dans un contrôle ou une vue ?
boite de dialogue et tableau [ par sacksith ]
Bonjour,Je n'arrive pas à afficher un tableau dans une boite de dialogue déclarée par createdialog et utilisant un fichier ressource .rcBon j'arrive à
declaration de tableau [ par speeddo ]
bonjour,je souhaite utiliser un tableau pour recueillir des données.Le problème est que je ne connais pas le nombre de données et leur type.J'utilise
Question sur les tableaux [ par cyberlewis ]
Salut à tous,Quelqu'un peut-t'il m'aider la dessus ?J'essaie de créer un mini jeu-vidéo, composé de Tiles (32x32), et il y en a 20x11 par écran.Je doi
question pour créer un tableau [ par Troape ]
J'ai créer un prog en C sous dev-cpp qui permet d'afficher 7 nombres au hasard. Je me suis rendu compte que des nombres peuvent s'afficher plusi
un tableau [ par oeckenshield ]
j'ai une tableau avec condition de saisie,j'arrive à poser les condition mais, j'arrive pas à effacer la derniere saisie cad la saisie erroner.
Traduire long int en tableau de caracteres [ par Shyron ]
Salut,Je cherche comment traduire un long int en un tableau de caracteres de même taille que le nombre de chiffres du long int en C++.
Problemes de Liste [ par MasterShadows ]
Salut à tous,je vais vous exposer mon problème, je suis en train de travailler sur mon créateur de Pack V3.0 et je n'arrive pas à créer une list box a
Detruire un tableau de _variant_t [ par 0xYg3n3 ]
tableau dynamique a 2 dimensions [ par CausPupus ]
Je cherche à créer un tableau dynamiquement au cours de mon application (je ne connais pas ca taille avant d'éxecuter le programme). Donc je sais que
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|