Recopie de Safearray

Signaler
Messages postés
32
Date d'inscription
dimanche 12 juin 2005
Statut
Membre
Dernière intervention
26 juin 2007
-
Messages postés
32
Date d'inscription
dimanche 12 juin 2005
Statut
Membre
Dernière intervention
26 juin 2007
-
bonjour,

je souhaite copier un safearray dans un autre. J'ai un safearray qui est un tableau de structure qui contient également des safearray. Voici la structure


struct Instrument
{
  double i_bpv;   
  SAFEARRAY* Signaux_3;   
  SAFEARRAY* Dates;   
   SAFEARRAY* DD;   
};


Voici ma fonction :


void recopie(SAFEARRAY** F_List, long Nb_Instru)
{


SAFEARRAYBOUND rgsabound;
rgsabound.cElements = Nb_Instru;
rgsabound.lLbound=0;


F = SafeArrayCreate(VT_VARIANT,1,&rgsabound);
SafeArrayCopyData(*F_List,F);

}

avec SafeArray* F ; en variable globale.

Cette fonction "marche" mais mal car elle ne recopie pas les bons champs. En effet elle recopie par exemple le champ DD de F_List dans le champ dates de F.  Hors les types ne correspondent pas ce qui crée des erreurs plus tard.

Merci de votre aide si vous avez une idée.

2 réponses

Messages postés
25
Date d'inscription
vendredi 4 août 2006
Statut
Membre
Dernière intervention
23 mai 2007

Je ne sais pas pourquoi ça ne marche pas, mais ça ne sent pas bon ton truc : copier des pointeurs de structure qui contiennent elles même des pointeurs sur des machins, c'est pas joli joli, à coup sûr tu va te retrouver un jour ou l'autre avec des references sur des objet qui n'existent plus, ou autre truc rigolo.

Commence déja par repenser cette chose. Ensuite commence simplement : un petit projet de test pour potasser les SAFEARRAY et leur copie, regarde aussi ce que raconte le MSDN sur le sujet (ce que tu as déja fait n'est ce pas ... )

zNoRt~!
Messages postés
32
Date d'inscription
dimanche 12 juin 2005
Statut
Membre
Dernière intervention
26 juin 2007

Merci mais en fait j'ai trouvé la réponse. C'était juste un réglage de visual concernant le struct alignment entre vba et c++.