Ik ben wat aan het prutsen met C en daar loop ik vast op een probleem wat in andere programmeertalen zo opgelost is. Dit is een stukje code als voorbeeld:
Het gaat om het derde argument van g_signal_connect. Dit is een functie die aangeroepen wordt zodra het event plaatsvind, in dit geval een enter_notify_event. Maar om mijn hele applicatie generiek te maken, wil ik het derde argument uit een variabele halen. Dus bijvoorbeeld zoiets:
Maar dat werkt natuurlijk niet, want 'functieNaam' is geen functie, maar de variabele 'functieNaam' bevat de waarde wat de naam van de functie is. Hoe krijg ik dit werkend? Ik dacht iets als valueOf(functieNaam) ofzo maar dat werkt niet... Iemand enig idee?
code:
1
2
3
4
5
| void doeIets(GtkWidget *widget) {
printf ("ik doe iets\n");
}
g_signal_connect (G_OBJECT (eventBox), "enter_notify_event", G_CALLBACK (doeIets), NULL); |
Het gaat om het derde argument van g_signal_connect. Dit is een functie die aangeroepen wordt zodra het event plaatsvind, in dit geval een enter_notify_event. Maar om mijn hele applicatie generiek te maken, wil ik het derde argument uit een variabele halen. Dus bijvoorbeeld zoiets:
code:
1
2
3
4
5
6
7
| void doeIets(GtkWidget *widget) {
printf ("ik doe iets\n");
}
char *functieNaam = "doeIets";
g_signal_connect (G_OBJECT (eventBox), "enter_notify_event", G_CALLBACK (functieNaam), NULL); |
Maar dat werkt natuurlijk niet, want 'functieNaam' is geen functie, maar de variabele 'functieNaam' bevat de waarde wat de naam van de functie is. Hoe krijg ik dit werkend? Ik dacht iets als valueOf(functieNaam) ofzo maar dat werkt niet... Iemand enig idee?