这与my other question有关,但我觉得我应该在一个新问题中提出这个问题。
基本上,FLAC使用函数指针进行回调,并使用ctypes实现回调,您可以使用CFUNCTYPE
对它们进行原型化,然后使用prototype()
函数创建它们。
我遇到的问题是,我想我会这样创建回调函数(我没有显示我重新创建的结构,FLAC\uu Frame是一个结构):
write_callback_prototype = CFUNCTYPE(c_int, c_void_p,
POINTER(FLAC__Frame),
POINTER(c_int32), v_void_p)
我遇到的问题是执行。FLAC}u Frame从来没有被程序员实例化过,它只是从初始化函数和处理函数中调用的,我必须自己编写回调函数,但他的问题是我不知道该怎么做,所以如果有人知道我该怎么做,那就非常感谢你的帮助。
根据ctypes callback docs可以定义python函数
然后创建指向C可调用函数的指针,如下所示:
这个函数指针可以被传递到FLAC中
在这种情况下,只需使用:
假设它已经定义好了,不要在意,因为您只需要指向它的指针,它基本上就是内存中的位置。
相关问题 更多 >
编程相关推荐