IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Probleme objet entre differentes fonctions MFC


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut Probleme objet entre differentes fonctions MFC
    Bonjour,

    je me permets de venir poster un nouveau sujet, car voici maintenant 3 jours que je galere pour la meme chose sans trouver de réponses a ma question.

    Je programme actuellement un logiciel d'analyse de son Wave dans le but de faire une analyse de fourier et de trouver l'harmonique principale. Mon programme fonctionne tres bien en mode console, mais dans le but de le rendre plus sympa a l'utilisation, j'ai commencé a faire une appli MFC. C'est la premiere fois aue je fais du MFC et je galere un peu. J'ai regardé pas mal de tutos, mais je ne toruve pas réponse a ma question. Bon stop le blabla, rentrons dans le vif du sujet.


    Dans mon programme j'utilise une classe WAV_IN, aui me sert a analyser le fichier WAVE. Mon probleme vient que j'ai besoin du meme objet appartenant a cette classe dans deux fonctions differentes (typiquement lorsque l'on appuie sur un bouton) et j'ai toujours la meme erreur qui me dit dans la deuxieme fonction : "undeclared identifier". J'ai essayé beaucoup de choses différentes et ca n'a jamais marché. Voici un bout du code :

    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
     
    void CRock_Sound_AnalyzeView::OnBnClickedButtonanalyse()
    {
     
    	WAV_IN prt_infile(m_pDocument->GetPathName());
     
    	m_StrgFileName = m_pDocument->GetTitle();
    	m_DoubleSampleRate=prt_infile->get_sample_rate_hz();
    	m_IntNumOfSamples = prt_infile->get_num_samples();
    	m_IntBitPerSamples = prt_infile->get_bits_per_sample();
     
     
    	UpdateData(FALSE);
     
    }
     
    void CRock_Sound_AnalyzeView::OnBnClickedButton2()
    {
     
    	FftCalcul fft(prt_infile); //ici je voudrais réutiliser l'objet WAV_IN créé juste avant.
    	m_DoublePitch = fft.frequency;
     
     
    	UpdateData(FALSE);
    }
    En espérant que vous puissiez m'aider, merci d'avance.

    (désolé pour le manque d'accent, je suis en angleterre actuellement)

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    euh bah c'est tout con

    dans le .h tu auras :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class CRock_Sound_AnalyzeView: ....
    {
    ......
    private : 
    WAV_IN *prt_infile;
    ....
    };
    et dans le .cpp
    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
     
    void CRock_Sound_AnalyzeView::OnBnClickedButtonanalyse()
    {
     
            prt_infile = new WAV_IN(m_pDocument->GetPathName());
     
    	m_StrgFileName = m_pDocument->GetTitle();
    	m_DoubleSampleRate=prt_infile->get_sample_rate_hz();
    	m_IntNumOfSamples = prt_infile->get_num_samples();
    	m_IntBitPerSamples = prt_infile->get_bits_per_sample();
     
     
    	UpdateData(FALSE);
     
    }
     
    void CRock_Sound_AnalyzeView::OnBnClickedButton2()
    {
     
    	FftCalcul fft(prt_infile); //ici je voudrais réutiliser l'objet WAV_IN créé juste avant.
    	m_DoublePitch = fft.frequency;
     
     
    	UpdateData(FALSE);
    }

  3. #3
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut
    Merci de ta réponse !

    J'ai essayé et j'ai le message d'erreur suivant : "error C2664: 'FftCalcul::FftCalcul(WAV_IN)' : cannot convert parameter 1 from 'WAV_IN *' to 'WAV_IN'
    No constructor could take the source type, or constructor overload resolution was ambiguous"


    Je comprends a peu pres ce qu'il veut me dire, mais je ne vois pas comment résoudre ce probleme. Quelqu'un pourrait il m'éclairer s'il vous plait ?


    EDIT : En fait c'est bon j'ai modifié ma classe FftCalcul pour qu'elle prenne en parametres un (WAV_IN *wave). Pensez vous que ca soit une bonne solution ? (je suis désolé si mes question peuvent paraitre coconne, mais je reprends le C++ depuis 2 semaines, j'y avais pas touché depuis 3 ans et les cours a l'école ...)

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    oups :
    remplace cette ligne la :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FftCalcul fft(prt_infile);
    par cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FftCalcul fft(*prt_infile);
    essaie de revoir des cours sur les pointeurs et le c++ car tu as l'air un peu perdu

  5. #5
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut
    Merci, beaucoup, j'ai utilisé ta méthode et ca marche parfaitement !

    Merci encore


    (et oui, faut que je revois tout ca parce que parfois je suis un peu a la rue )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/10/2011, 19h40
  2. partager un objet entre deux fonctions
    Par thibaud74 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/09/2009, 12h54
  3. attendre 1 seconde entre deux fonctions
    Par urousseau dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2008, 19h14
  4. [MFC] probleme d'acces à certaine fonctions
    Par Info42 dans le forum MFC
    Réponses: 8
    Dernier message: 14/05/2006, 20h15
  5. Réponses: 8
    Dernier message: 13/08/2004, 12h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo