Mein Problem ist ungültig, Funktionszeiger auf Elementfunktion umwandeln. Alles ist in Ordnung, wenn die coap_handler Elementfunktion statisch ist. Die Instanz von CoapClient kann nicht statisch und global sein. Ich möchte statisch von coap_handler() entfernen. Wie man es macht? DankUngültiger konvertierender Funktionszeiger zur Elementfunktion
class CoapClient{
...
void connect(){
mg_connect(&mgr, address.c_str(), coap_handler);
}
static void coap_handler(struct mg_connection *nc, int ev, void *p) {
...
}
};
////// Signatur mg_connect function
struct mg_connection *mg_connect(struct mg_mgr *mgr, const char *address,
mg_event_handler_t callback);
////// Unterschrift des mg_event_handler_t
Callback-Funktion (Event-Handler) Prototyp. Muss vom Benutzer definiert werden. Mongoose ruft den Event-Handler auf und übergibt die unten definierten Ereignisse.
typedef void (*mg_event_handler_t)(struct mg_connection *, int ev, void *);
Sie können nicht? Mitgliedsfunktionszeiger müssen über eine Instanz verfügen, um sie actully aufzurufen. –
Die connect-Methode wird in einem Konstruktor der CoapClient-Klasse aufgerufen. –
Veröffentlichen Sie ein [MCVE], das Ihr Problem tatsächlich zeigt. –