ich benutze in meinem Projekt eine externe FTP-Bibliothek, und der Fortschritt des Down/Up-Loads soll in meinem Programm angezeigt werden. Meine Frage: Ist es möglich einen normalen FunctionPointer in einen Pointer auf einer Member-Function zu casten? Sonst müsste ich ja die Header-Dateien meines Projekts im FTP-Quellcode includen, und irgendwie ist das doch nicht so schön.
void MyLibFunction() { // hier soll MyClass::MyClassMethod aufgerufen werden printf("Hier tu ich was \n"); }
Ich würde nun gern an MyLibFunction einen FunctionPointer übergeben der es ermöglicht MyClass::MyClassMethod aufzurufen. Aber soweit ich weiss muss man, um ein Funktion über einen Funktionspointer aufzurufen der auf eine Klassenmethode zeigt eine Instanz der Klasse (bzw. einen Zeiger auf eine Instanz der Klasse) habe. Aber so brutal würde ich die Library die ich benutze nur ungern ändern. Deswegen hatte ich gedacht ich erstelle einen Zeiger auf die Methode meiner Klasse, übergebe ihn an MyLibFunction aber als "normalen" Funktionszeiger der keine Instanz meiner Klasse braucht. Ist das überhaupt möglich?
... Deswegen hatte ich gedacht ich erstelle einen Zeiger auf die Methode meiner Klasse, übergebe ihn an MyLibFunction aber als "normalen" Funktionszeiger der keine Instanz meiner Klasse braucht. Ist das überhaupt möglich?
Wie Flo schon gesagt hat geht das, wenn die Funktion static ist:
Du willst eine Callback-Funktion in einem dir vorgegebenen Kontext aufrufen lassen. Akademische Beispiele gibts zuhauf, aber wenn du mit denen nichts anfangen kannst, brauchst du wohl Hilfe am lebenden Objekt. Zeig uns doch mal diesen Kontext, dann können wir vielleicht einen passenden Callback liefern.