Eigener Klassenaufruf PROBLEM GELÖST!!!



  • Hallo,
    ich bin neu hier und konnte leider über die Suche keine Lösung für mein Problem finden!
    Also ich bin dabei eine Desktop Suche zu schreiben.
    Ich hab ein MFC Projekt auf Dialogfeld basis gebastelt.
    Dort existieren jetzt folgende Klassen:
    CDesktopSucheApp
    CDesktopSucheDlg
    CFolderFileFinding

    Nun Möchte ich gerne eine Objekt aus einer Funktion aus CFolderFileFinding in CDesktopSucheDlg erstellen:

    Problem: Er ruft die Funktion überhaupt nicht auf... er macht einfach garnichts....
    Ich weiß das die Kapselung und Zugriffs Methoden fehlen!!
    Aber sollte doch eigentlich auch so Funktionieren.....

    void CDesktopSucheDlg::OnBnClickedFirstsearch()               
    {
    
       CFolderFileFinding bb;
    	int iTest;
    	UpdateData(true);
    
        bb.FindingAllLevelOfFolder(m_strLaufwerk);
    	iTest = bb.m_strFilePath.GetSize();
    	//Ausgabe der CStringArray's	
    	for(int x=0; x<=bb.m_strFilePath.GetSize()-1; x++)
    	{
    		m_strSuchResult += bb.m_strFilePath.GetAt(x) + "\r\n";
    	}
    	UpdateData(false);
    }
    

    Ich würde mich über eine Antwort sehr freuen.
    Also vielen Dank im Voraus für alle Tipps!!

    Viele Grüße,
    Johannes



  • Was meinst Du genau mit "Er ruft die Funktion überhaupt nicht auf..."? Ist damit die darunter stehende CDesktopSucheDlg::OnBnClickedFirstsearch() gemeint?
    Wenn ja dann sieht das so aus als ob es sich um eine Behandlungsroutine für einen Button handelt. Die muss natürlich im entsprechenden Eventhandler eingetragen werden. Schau da erst mal nach wenn es das Problem überhaupt ist...



  • Hi,
    Die Funktion: CDesktopSucheDlg::OnBnClickedFirstsearch() ist ein Button der auch Aufgerufen wird und funktioniert!

    CFolderFileFinding bb;
    int iTest;
    UpdateData(true);
    
    bb.FindingAllLevelOfFolder(m_strLaufwerk);
    

    Aber mein Problem ist nun das die Funktion FindingAllLeveOfFolder aus der Klasse CFolderFileFinding nicht aufgerufen wird und somit auch kein ergebnis liefert.... und ich versteh nicht warum, weil eigentlich müsste sie Werte in die m_strFilePath schreiben welches Member Variable der Klasse CFolderFileFinding ist.



  • VCJockel schrieb:

    Aber mein Problem ist nun das die Funktion FindingAllLeveOfFolder aus der Klasse CFolderFileFinding nicht aufgerufen wird

    Woraus schließt du das? Hast du einen Breakpoint reingesetzt, und der wird nicht getroffen?

    Wie ist FindingAllLevelOfFolder deklariert?

    Funktioniert die Methode, wenn du sie anders aufrufst?



  • MFK schrieb:

    VCJockel schrieb:

    Aber mein Problem ist nun das die Funktion FindingAllLeveOfFolder aus der Klasse CFolderFileFinding nicht aufgerufen wird

    Woraus schließt du das? Hast du einen Breakpoint reingesetzt, und der wird nicht getroffen?

    Wie ist FindingAllLevelOfFolder deklariert?

    Funktioniert die Methode, wenn du sie anders aufrufst?

    Seh ich genauso... Man sieht ja keinen Rückgabewert den Du überprüfen kannst. Was steht denn außerdem in der Variable m_strLaufwerk?



  • genau ich hab einen Breakpoint in die Funktion FindingAllLevelOfFolder(CString strPath) gesetzt und dieser wird nicht aufgerufen... ich wüsste aber auch nciht wie ich sie sonst aufruen sollte...
    Eigentlich dachte ich das man Objekte so erstellt, hat bei MFC Klassen bis jetzt auch immer so Funktioniert... deswegen versteh ich das auch alles nicht!

    class CFolderFileFinding
    {
    public:
    	CFolderFileFinding(void);
    	~CFolderFileFinding(void);
    private:
    	CString m_strPathType;
    public:
    	CStringArray m_strDirs;
    	CStringArray m_strFiles;
    	CStringArray m_strFilePath;
    public:
    	void FindingOneLevelOfFolder(CString strPath);
    	void FindingAllLevelOfFolder(CString strPath);
    };
    
    void CFolderFileFinding::FindingAllLevelOfFolder(CString strPath)
    {
      [...]
    }
    


  • Die Funktion FindingAllLevelOfFolder(CString strPath) erstellt einen kompletten Baum mit Dateien und Verzeichniessen eines Laufwerkes z.B. C:\.
    Diesen Baum speichert er in einem CStringArray m_strFilePath. Diesen CStringArray möchte ich nun in der Button funktion auslehsen um das dann in eine EditBox zu schreiben..... bzw. um mit der Variable dann später weiter zu arbeiten!



  • VCJockel schrieb:

    Hi,
    Die Funktion: CDesktopSucheDlg::OnBnClickedFirstsearch() ist ein Button der auch Aufgerufen wird und funktioniert!

    Wie hast Du das überprüft? Ich kann mir nicht vorstellen das ein fehlerfrei kompiliertes Projekt in eine Funktion springt und die nur zum Teilk ausführt.
    Was versteckt sich hinter dieser Funktion FindingAllLevelOfFolder(m_strLaufwerk)?
    Poste mal diesen Code.



  • ...oder mach ein Rebuild All...



  • Hallo,
    vielen Dank für euer Hilfe!
    Ich hab den Fehler nun selber gefunden! Ich hatte vergessen bestimmte Parameter in der Funktion FindingAllLevelOfFolder(CString strPath) zu übergeben bzw. deshalb hat sie nichts gemacht.

    Aber trotzdem Vielen Dank.

    Hat sich hiermit erledigt!

    Grüße,
    Johannes


Anmelden zum Antworten