Unzulaessiger Aufruf



  • Ich habe ein Problem:
    Ich habe die folgende Klasse, die in einer eigenen Headerdatei definiert wird in einer extra cpp-Datei:

    class Brutus{
    public:
        Brutus();
        ~Brutus();
        bool cancel;
        void startbrutus();
        char target[100];
        char testiftarget[100];
    private:
        void TargetFound();
        void upgrade();
        bool checkiftarget();
    
    };
    

    (In der oberen Klasse rufe ich die untere Methode auf)
    Zusätzlich habe ich noch in der Definition einer Dialogklasse diese Methode eingeschrieben...

    class CBruteforceDlg : public CDialog
    {
    // Konstruktion
    public:
        CBruteforceDlg(CWnd* pParent = NULL);   // Standard-Konstruktor
    void CBruteforceDlg::aStatus(){
    
        m_status = brut.testiftarget;
    
    };
    

    Wenn ich diesen Code nun ausführe bekomme ich folgende meldung:
    'CBruteforceDlg::aStatus' : Unzulaessiger Aufruf einer nichtstatischen Member-Funktion
    Was muss ich ändern was ist mein fehler ?

    [ Dieser Beitrag wurde am 26.08.2002 um 17:30 Uhr von BodoWiswe editiert. ]



  • naja mal abgesehen von dem was es werden soll.... 😃
    Wo, bzw. wie rufst du denn die Methode auf?



  • wenn du das mit :: aufrufst dann musst du vor der Funktion noch ein Static schreiben



  • [cpp]
    class CBruteforceDlg : public CDialog
    {
    // Konstruktion
    public:
    CBruteforceDlg(CWnd* pParent = NULL); // Standard-Konstruktor
    void aStatus()
    {
    m_status = brut.testiftarget;
    }
    };[/cpp]

    Und warum überhaupt void CBruteforceDlg::aStatus()?



  • die methode aStatus ist nur dazu da ein CStatic (m_status = CString) zu beschriften
    Ich kann ja leider nicht so ohne weiters auf Membervariablen zugreifen, die in einer anderen klasse stehen (oder doch?)

    P.S.: Wenn ich vor die methode aStatus() static schreibe bekomme ich folgendes :
    Ungueltige Referenz auf ein Datenelement 'CBruteforceDlg::m_status' in einer statischen Member-Funktion

    Man kann mein Problem auch sehr kurz fassen:
    Wie kann ich eine Membervariable von einem Steuerelemt erreichen, wenn der Code der dies machen will in einer anderen Klasse sitzt.
    (Also nicht in der klasse CDocument usw sondern in einer Klasse wie Flugzeug, Teammate, Laster, ... wasweisichdenn 🙄 )

    [ Dieser Beitrag wurde am 26.08.2002 um 20:40 Uhr von BodoWiswe editiert. ]



  • 😕

    Der Code sitz in einer anderen Klasse ? 😕

    Wenn du vom Dialog einen Klasse aufrufst dann übergib dieser den this-Zeiger.

    Damit kannst du auf die Member des Dialogs zugreifen.

    Ein BSp. ist auf meiner HP im Threadprogramm. Dem Thread wird der this-Zeiger übergeben.


Anmelden zum Antworten