hi,
ich arbeite mit GTK+ und versuche gerade eine callback-funktion für meinen TCP-Socket zu verwenden. Allerdings bekomm ich ne Fehlermeldung beim Kompilieren. Habe jetzt mal den Teil mit dem Fehler hier reinkopiert:
Die Funktion onDataAvailable wird also als Callback registriert und sollte aufgerufen werden sobald Daten am Socket anliegen. Nachdem ich mich allerdings mit Function Pointer nicht wirklich gut auskenn scheitere ich an folgender Meldung:
ich arbeite mit GTK+ und versuche gerade eine callback-funktion für meinen TCP-Socket zu verwenden. Allerdings bekomm ich ne Fehlermeldung beim Kompilieren. Habe jetzt mal den Teil mit dem Fehler hier reinkopiert:
Code:
bool TestApp::createConnection(int timeout_seconds, bool startup) {
...
GIOChannel *socket_chan = g_io_channel_unix_new(m_socket.getRawSocket());
guint sourceID = g_io_add_watch(socket_chan, G_IO_IN, &TestApp::onDataAvailable, NULL); // FEHLER
return true;
}
gboolean TestApp::onDataAvailable(GIOChannel *gio, GIOCondition condition, gpointer data)
{
...
}
Die Funktion onDataAvailable wird also als Callback registriert und sollte aufgerufen werden sobald Daten am Socket anliegen. Nachdem ich mich allerdings mit Function Pointer nicht wirklich gut auskenn scheitere ich an folgender Meldung:
Fehler: »gboolean (TestApp::*)(GIOChannel*, GIOCondition, void*)« kann nicht nach »gboolean (*)(GIOChannel*, GIOCondition, void*)« für Argument »3« nach »guint g_io_add_watch(GIOChannel*, GIOCondition, gboolean (*)(GIOChannel*, GIOCondition, void*), void*)« umgewandelt werden