Dies ist mit my other question verwandt, aber ich fühlte mich wie ich sollte es in einer neuen Frage stellen.Python Ctypes und Funktion Zeiger
Grundsätzlich FLAC verwendet Funktionszeiger für Rückrufe, und Callbacks mit Ctypes zu implementieren, verwenden Sie CFUNCTYPE
, um sie zu prototypieren, und dann verwenden Sie die prototype()
Funktion, um sie zu erstellen.
Das Problem, das ich mit diesem ist, dass ich dachte, dass ich meine Callback-Funktion als solche schaffen würde (ich nicht, die Strukturen zeigen, bin, dass ich neu erstellt haben, ist FLAC__Frame eine Struktur):
write_callback_prototype = CFUNCTYPE(c_int, c_void_p,
POINTER(FLAC__Frame),
POINTER(c_int32), v_void_p)
Das Problem dass ich habe, ist die Umsetzung. FLAC__Frame wird niemals vom Programmierer instanziiert, sondern nur von der Initialisierungsfunktion und den Verarbeitungsfunktionen aufgerufen. Ich muss die Callback-Funktion selbst schreiben, aber das Problem ist, dass ich nicht weiß, wie ich das machen würde, also wenn jemand Ich weiß, wie ich das machen soll, dann würde ich sehr dankbar sein.
Vielen Dank, Ihr Code machte mir klar, wie ich es erstellen sollte! – Bocom