[Debutant] Remplissage d'un tableau dans une dll
Bonjour à tous;
Je désire créer une dll qui reçoit un échantillon et le met dans deux tableaux, l'un de taille fixe et l'autre de taille variable;
Lorsque le tableau de taille fixe est plein, je voudrais écraser les premières valeurs par les nouvelles, un par un (comme dans un buffer circulaire). Ci joint le code que j'ai essayer d'utiliser; le fichier d'entente est le suivant
Code:
1 2 3 4 5 6 7 8 9
|
Table.h
#include <vector>
using namespace std;
extern "C"
{
__declspec( dllexport ) int UptadeTableau(float echantillon,float *signal, int nb);
} |
le code source est :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#include <stdio.h>
#include<vector>
#include<math.h>
#include<conio.h>
#include"Table.h"
typedef vector<float> Tableau;
/* chantillon = echantillon qui vient d'arriver
signal = tableau de sortie de taille 100
nb = nbre d'echantillon (en rélité celui n'est pas connu d'avance)
*/
int UptadeTableau(float echantillon,float *signal, int nb)
{
int n;
int t=0; // compteur du nombre d'echantillon dans le tableau
Tableau tab; // tableau destiné à contenir les echantillons
for(int l=0; l<100; ++l){signal[l]=0;} // Initialisation du tableau de sortie
while(t<nb)
{
/* Mise de l'echantillon dans le tableau de sortie
a la position t%100;
*/
signal[t%100]= echantillon;
tab.push_back(echantillon);// mise de l'echantillon dans le tableau
n= t;
t++; // inrementation du compteur
}
return n;
} |
Lorsque je lance l'exécution, je vois bien que les échantillons arrivent dans la dll. Le probleme est que la tableau de sortie qui devrait contenir une centaine d'échantillons est rempli avec le même échantillon, le dernier qui vient d'arriver;
je ne sais pas exactement ce qui ne va pas.
Je sollicite de l'aide;