wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 4
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Erreur de compil sur la fonction dir.Traverse.
Conversation (Résolue) : Erreur de compil sur la fonction dir.Traverse.
19-02-2016 19:18:23  Erreur de compil sur la fonction dir.Traverse. #1
PatrickMULOT (Membre)
Lieu: JUMELLES 27220
Inscrit le : 28-01-2016
Messages: 17
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour toutes et tous,
j'ai un problème lorsque je compile l'instruction suivante, qui pourtant est issue d'un snippet présent sur ce site.

Code wxWidgets:

dir.Traverse( dirtraverser, wxT( "*.gwb" ), wxDIR_FILES );


et l'erreur renvoyée par le compilateur

Code Cpp:

./mainframe.cpp:183:61: error: no matching function for call to ‘wxDir::Traverse(MyDirTraverser (&)(wxListBox*), const wchar_t [6], wxDirFlags)
     dir.Traverse( dirtraverser, wxT( "*.gwb" ), wxDIR_FILES );
                                          ^

apparemment c'est la constante "*.gwb" qui ne lui plaît pas. Si quelqu'un a une idée, je suis preneur !
Merci d'avance à qui pourra m'aider.

Amicalement,
Patrick

ASUS K73SV - Intel Core i7-2630QM CPU @ 2.00GHz × 8 - Ram 4 Gb - HDD 320+500 Gb
Multi-Boot : Ubuntu 14.04 LTS 64 bits - Debian 8.2.0  64 bits

" Heureux sont les gens fêlés car ils laissent passer la lumière ..."  (Michel AUDIARD)
19-02-2016 23:40:25  Re: Erreur de compil sur la fonction dir.Traverse. #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1364
Snippets: 25
Tutoriels: 6
Site web
Hors ligne
Hello.

Il y avait effectivement 2 petites erreurs dans le snippet :
- une faute de frappe au niveau du constructeur de la classe MyDirTraverser (il était écrit m_lstRes=letResult; au lieu de m_lstRes=lstResult;
- une erreur de constante (il était écrit wxDIR_DIR au lieu de wxDIR_DIRS

Mais ces erreurs n'on rien à voir avec ton problème de compilation.
C'est très étrange : je viens de faire un copier coller du code du snippet, (j'ai juste remplacé l'utilisation d'une wxListBox par un wxTextCtrl, et ça compile sans problème.

Voici le code que je viens de compiler :

Code wxWidgets:

#include <wx/dir.h>
class MyDirTraverser : public wxDirTraverser
{
public:
    MyDirTraverser(wxTextCtrl *txtResult) { m_txtRes=txtResult;}
    virtual wxDirTraverseResult OnFile(const wxString& filename)
    {
        if (m_txtRes!=NULL)
            *m_txtRes << filename << _T("\n");
        return wxDIR_CONTINUE;
    }
    virtual wxDirTraverseResult OnDir(const wxString& WXUNUSED(dirname))
    {
        return wxDIR_CONTINUE;
    }
private:
    wxTextCtrl *m_txtRes;
};
 
void MainFrame::OnDoTest(wxCommandEvent& event)
{
    wxDir dir(_T("C:\\Temp"));
    if (dir.IsOpened()==false) return;
    MyDirTraverser dirtraverser(m_txtLog);
    dir.Traverse(dirtraverser,wxT("*.*"),wxDIR_FILES);
}


Et ça marche nickel.
À mon avis, il doit y avoir un autre soucis.

Est-ce que tu aurais un peu plus de détails sur l'erreur de compilation, stp.

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
20-02-2016 01:15:08  Re: Erreur de compil sur la fonction dir.Traverse. #3
PatrickMULOT (Membre)
Lieu: JUMELLES 27220
Inscrit le : 28-01-2016
Messages: 17
Snippets: 0
Tutoriels: 0
Hors ligne
Bonsoir Xav,

la variable

Code wxWidgets:

dans l'instruction

Code wxWidgets:

wxDir::GetAllFiles( ... )
, je l'avais déclaré en wxString variable[] = {} au lieu de wxArrayString. :stupid:

Maintenant ça fonctionne :)
Désolé de t'avoir dérangé pour une c......e de ma part.

ASUS K73SV - Intel Core i7-2630QM CPU @ 2.00GHz × 8 - Ram 4 Gb - HDD 320+500 Gb
Multi-Boot : Ubuntu 14.04 LTS 64 bits - Debian 8.2.0  64 bits

" Heureux sont les gens fêlés car ils laissent passer la lumière ..."  (Michel AUDIARD)
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Erreur de compil sur la fonction dir.Traverse.