Это связано с другим моим вопросом , но я чувствовал, что должен задать его в новом вопросе.
В основном FLAC использует указатели функций для обратных вызовов, а для реализации обратных вызовов с ctypes вы используете CFUNCTYPE
для их прототипирования, а затем используете функцию prototype()
для их создания.
Проблема, с которой я столкнулся, заключается в том, что я решил создать свою функцию обратного вызова как таковую (я не показываю воссозданные структуры, FLAC__Frame - это структура):
write_callback_prototype = CFUNCTYPE(c_int, c_void_p,
POINTER(FLAC__Frame),
POINTER(c_int32), v_void_p)
У меня проблема с реализацией. FLAC__Frame никогда не создается экземпляром программистом, он вызывается только из функции инициализации и функций обработки. Мне нужно написать функцию обратного вызова самостоятельно, но он в том, что я не знаю, как я это сделаю, так что если знает, как я должен это сделать, тогда будет очень признательна за помощь.