Fehler Memberfunktion wie gehts richtig?



  • Hallo zusammen,

    Folgendes Problem:

    typedef void __fastcall (*TEventReceiveMessage)(SMsg *CleanMsg);
    
    class TTest
    {
    ...
         public:
    	TEventReceiveMessage OnReceiveMessage;
    ...
    }
    
    void __fastcall TForm_Main::Empfang(SMsg *Msg)
    {
    ...
    }
    
    void __fastcall TForm_Main::Button1Click(TObject *Sender)
    {
        TTest *Test = new TTest(); 
        Test->OnReceiveMessage = Empfang;
    
    }
    

    Beim Compileren bekomme ich jetzt den Fehler:
    Member-Funktion muss aufgerufen oder ihre Adresse übernommen werden.

    Das versteh ich irgendwie nicht so ganz. Wenn ich OnReceiveMessage Message eine Funktion zuweise die nicht in der TForm_Main Klasse ist, bekomme ich keinen Fehler. 😕

    Danke schonmal für die Hilfe.



  • Ich habs schon 🙂

    typedef void __fastcall (__closure *TEventReceiveMessage)(SMsg *CleanMsg);
    

    Danke



  • In deinem Event-Typ fehlt __closure , und Felder macht man nicht öffentlich.


Anmelden zum Antworten