ouais je sais ça peut paraître con, et mon erreur doit l'être aussi mais là je ne vois plus rien du tout et donc, j'en appel à votre bon coeur....mais surtout à votre compétence en C++ !
environnement: Windows XP PRo SP2, VSC++6, Codage d'une DLL
alors voilà:
la fonction suivante reçoit plusieurs paramètres. Les 2 derniers sont des tableaux dont la taille peut varier d'un appel à l'autre..bref ces deux tableaux sont vides et doivent être remplis par cette fonction.
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 double CalcFilmCont(char *fetude, usint nind, double *vspots, int nbspots, char *dcbl, double *contacts, int *poids) { //Déclarations double *Pbci; //initialisation Pbci = new double[nind]; contacts = new double[nind]; // traitement qui rempli Pbci //je récupère les valeurs de Pbci dans contacts par la boucle suivante for(i=0;i<nind;i++) { contacts[i] = Pbci[i]; } return 0; }
Cette fonction est appelée par le point d'entrée suivant de ma DLL:
Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 extern "C" __declspec(dllexport) double calc_filmcontact(char *fetude, usint nind, double *vspots, int nbspots, char *dcbl, double *contacts, int *poids) { double ret=0; AFX_MANAGE_STATE(AfxGetStaticModuleState()); TRY { ret = CalcFilmCont(fetude,nind,vspots,nbspots,dcbl, contacts,poids); } END_TRY return ret; }
Et le problème c'est qu'une fois de retour dans le programme appelant, je n'ai absolument rien dans le tableau contacts si ce n'est de jolis petits zéros .....
merci de votre aide à tous,
Ben
Partager