Bonjour à tous!!!
C'est mon premier Post dans ce forum, et je tient d'abord à remercier tous ce qui l'animent car il m'a sortie bien des fois de lla m****!!...
Mais la je bute...
Voila, j'ai une application à faire sous VC6.0 avec l'appWizard en SDI. Il s'agit de réaliser diverse opérations de traitement sonore sur un fichier wav (lecture, filtrage, concatenation,...) bref, tous ça marche à la perfection...
Mon problème est le suivant:
Je doit afficher la FFT(transformée de Fourier) d'un fichier wav. J'ai une classe Cson qui la calcule (grace à une méthode fft() ), et retourne un tableau (de type double *) dans le Doc.cpp .Le problème, c'est que dans ma fonction ::Ondraw(CDC* pDC) , lorsque j'appelle le tableau par la commadeet bien le prog plante...(mais sans erreur avec le compilo)
Code : Sélectionner tout - Visualiser dans une fenêtre à part pDC->LineTo(i+40,400-pDoc->tabFFT[i]);
Mais pourquoi diantre cela???
Voici ma fonction ::OnDraw :
Code : 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
21
22
23
24
25
26
27
28
29 void CIstasoundView::OnDraw(CDC* pDC) { CIstasoundDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); pDC->MoveTo(40,100); pDC->LineTo(20,120); pDC->MoveTo(40,100); pDC->LineTo(60,120); pDC->MoveTo(40,100); pDC->LineTo(40,400); pDC->LineTo(592,400); pDC->LineTo(572,380); pDC->MoveTo(592,400); pDC->LineTo(572,420); pDC->TextOut(593,400,"fréquence en Hz"); pDC->TextOut(10,80,"Amplitude"); CBrush Brush; CBrush pinceau(RGB(0,255,0)); pDC->MoveTo(40,400); for(int i=0;i<=552;i++) { pDC->LineTo(i+40,400-pDoc->tabFFT[i]);//ici le pb!!! } }
ET maintenant le code correspondant dans le Doc.cpp:
alors j'ai déclaré tabFFT en public, protected, mais sans succés!...
Code : Sélectionner tout - Visualiser dans une fenêtre à part tabFFT=son.fft();//son étant la classe et fft, la methode
Comment faire alors???...
aidez moi ,SVP!!!...
@+, et merci d'avance!...
Partager