24.05.2008, 19:30
(Dieser Beitrag wurde zuletzt bearbeitet: 24.05.2008, 19:32 von Freakazoid.)
Du meinst das hier?
Der vierte Parameter ist einfach ein Zeiger auf die Funktion, die aufgerufen werden soll, wenn das Signal eintrifft.
Das fünfte ist ein Zeiger auf die Daten, die übergeben werden sollen (oder NULL).
Aus der gleichen Seite steht (etwas weiter oben) die Definition für das PURPLE_CALLBACK-Makro:
Es castet einfach nur (einen Zeiger auf) deine Funktion auf den Typ PurpleCallback, der (ein paar Zeilen darunter) so definiert ist:
(Also eine Funktion die einen void-Pointer erwartet und einen void-Pointer zurück gibt.)
Deine Daten übergibst du also, in dem du nicht die Daten selbst, sondern deren Adresse übergibst. (Dabei ist darauf zu achten, dass die Daten nicht auf dem Stack stehen, also keine lokalen Variablen sind.)
Der vierte Parameter ist einfach ein Zeiger auf die Funktion, die aufgerufen werden soll, wenn das Signal eintrifft.
Das fünfte ist ein Zeiger auf die Daten, die übergeben werden sollen (oder NULL).
Aus der gleichen Seite steht (etwas weiter oben) die Definition für das PURPLE_CALLBACK-Makro:
Code:
#define PURPLE_CALLBACK(func) ((PurpleCallback)func)
Es castet einfach nur (einen Zeiger auf) deine Funktion auf den Typ PurpleCallback, der (ein paar Zeilen darunter) so definiert ist:
Code:
typedef void(*PurpleCallback )(void)
Deine Daten übergibst du also, in dem du nicht die Daten selbst, sondern deren Adresse übergibst. (Dabei ist darauf zu achten, dass die Daten nicht auf dem Stack stehen, also keine lokalen Variablen sind.)