Ich möchte gerne, dass ich in C eine Funktion init_CDK habe, die folgendermaßen aussehen soll:
Code: Alles auswählen
PyObject * init_CDK (PyCursesWindowObject* wo, /*mehr argumente */)
{
WINDOW * win = wo->win;
CDKScreen * screen = initCDKScreen(win);
/*mehr*/
}
Code: Alles auswählen
screen = curses.initscr()
init_CDK(screen)
Code: Alles auswählen
PyObject * init_CDK (/*mehr argumente */)
{
WINDOW * win = initscr();
CDKScreen * screen = initCDKScreen(win);
/*mehr*/
}
Aber die eigentliche Frage: Warum führt das erste zu einem Segfault? - Ich habe mir den _cursesmodule.c-Quellcode schon mehrfach angeschaut und bin zu dem Schluss gekommen, dass curses.initscr() auch nur initscr() aufruft und den erhaltenen Zeiger denn in ein PyCursesWindowObject packt.
Vielleicht hat ja jmd ne Idee (oder wahlweise einen funktionierenden CDK-Wrapper )
(Anm: Bevor jmd den allgemeinen Aufbau der C-Teile bemängelt - ich schreib das in Pyrex und habe nur schnell die Funktionen "übertragen".)