//affichage du tableau t
t = g->t;
sprintf(msg,"%x",&t);
MessageBox (NULL, msg , "DLL Message", 0);
SafeArrayGetUBound(t,1,&nT);
SafeArrayGetUBound(t,2,&mT);
sprintf(msg,"%i x %i",nT,mT);
MessageBox (NULL, msg , "DLL Message", 0);
//affichage du tableau l
l = g->l;
sprintf(msg,"%x",&l);
MessageBox (NULL, msg , "DLL Message", 0);
SafeArrayGetUBound(l,1,&nL);
SafeArrayGetUBound(l,2,&mL);
sprintf(msg,"%i x %i",nT,mT);
MessageBox (NULL, msg , "DLL Message", 0);
//affichage de la chaine de caractère
MessageBox(NULL, g->s, "DLL Message", 0);
hr = SafeArrayAccessData(t,(void HUGEP **)&pData);
if (FAILED(hr)) {
MessageBox (NULL, "Impossible de lire le tableau !" , "DLL Message", MB_ICONHAND);
return -1;
}
return 0;
}
Le problème apparaît à la dernière opération:
" hr = SafeArrayAccessData(t,(void HUGEP **)&pData); "
Visual basic m'indique alors :
Erreur d'execution '10' :
Ce tableau est fixe ou temporairement verrouillé.
Quelqu'un pourrait me filer un tuyau? merci d'avance
A voir également:
Comment passer une structure contenant un tableau de VB à C ?
cs_TomC
Messages postés42Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention17 mai 2006 20 déc. 2005 à 17:26
Rectification:
En réalité, mon tableau (dynamique a priori) est bien passé dans la structure, et je peux récupérer sa taille. Le problème vient en réalité du fait que le tableau est verrouillé (par vb je pense). Je cite VBEditor :
Erreur d'execution 10
Ce tableau est fixe ou temporairement verrouillé
Bon ok il est verrouillé, je suis d'accord, mais je me pose 2 questions:
Comment le déverrouiller?
J'arrive à passer le tableau (qui est bien dynamique) sans structure, en le mettant en paramètre de ma fonction. Comment cel ase fait-il que dans ce cas je ne me fasse pas insulter???